I data lake circonderanno, e in alcuni casi annegheranno, il data warehouse e assisteremo a significative innovazioni tecnologiche, prodotti data lake, metodologie e architetture di riferimento che trasformeranno in realtà la promessa di un accesso più ampio ai dati e di approfondimenti sui big data. Ma i prodotti e le soluzioni per i big data devono maturare e andare oltre il ruolo di strumenti di sviluppo per programmatori altamente qualificati. Il data lake aziendale consentirà alle organizzazioni di tenere traccia, gestire e sfruttare i dati a cui non hanno mai avuto accesso in passato. Le nuove strategie di gestione dei dati aziendali stanno già portando a un maggior numero di analisi predittive e prescrittive, che consentono di migliorare l'esperienza del servizio clienti, di risparmiare sui costi e di ottenere un vantaggio competitivo complessivo quando c'è il giusto allineamento con le principali iniziative aziendali.
Quindi, sia che il vostro data warehouse aziendale sia in fase di supporto vitale o in modalità di manutenzione, molto probabilmente continuerà a fare ciò che sa fare bene per il momento: reportistica e analisi operativa e storica (alias specchietto retrovisore). Quando si prende in considerazione l'adozione di una strategia di data lake aziendale per gestire dati più dinamici e polistrutturati, anche la strategia di integrazione dei dati deve evolversi per gestire i nuovi requisiti. Pensare di poter semplicemente assumere altri sviluppatori per scrivere codice o affidarsi agli strumenti legacy incentrati su righe e colonne è una ricetta per sprofondare in una palude di dati invece di nuotare in un lago di dati.
Innanzitutto, definiamo cos'è un data lake.
Che cos'è un Data Lake?
Un data lake è un grande archivio centralizzato di dati strutturati e non strutturati memorizzati nel loro formato nativo. I data lake sono progettati per fornire una piattaforma scalabile e flessibile per l'archiviazione e l'analisi di grandi quantità di dati e sono spesso utilizzati dalle organizzazioni per archiviare dati provenienti da diverse fonti, come sensori, feed di social media e sistemi transazionali. I dati di un data lake possono essere elaborati e analizzati utilizzando un'ampia gamma di strumenti e tecnologie, tra cui sistemi di elaborazione batch, motori di elaborazione di flussi in tempo reale e motori di query interattivi. L'obiettivo di un data lake è fornire un unico repository centrale per tutti i dati di un'organizzazione, dove è possibile accedere, interrogare e analizzare facilmente i dati per supportare un'ampia gamma di casi d'uso.
Ottimo. Ora che sappiamo cos'è un lago di dati, passiamo alla parte più tecnica.
Ecco otto requisiti di gestione dei dati aziendali che devono essere affrontati per ottenere il massimo valore dagli investimenti in tecnologia big data e dai prodotti data lake.
8 requisiti di gestione dei dati aziendali per il vostro data lake
1) Archiviazione e formati dei dati
Il data warehousing tradizionale si concentrava sui database relazionali come formato primario di archiviazione dei dati. Un concetto chiave del data lake è la capacità di memorizzare in modo affidabile una grande quantità di dati. Tali volumi di dati sono in genere molto più grandi di quelli che possono essere gestiti nei database relazionali tradizionali, o molto più grandi di quelli che possono essere gestiti in modo economicamente conveniente. A tal fine, l'archiviazione dei dati sottostante deve essere scalabile e affidabile. L'Hadoop Distributed File System (HDFS) e i relativi strumenti di gestione dei dati Hadoop sono maturati e sono ora la tecnologia di archiviazione dei dati leader che consente la persistenza affidabile di dati su larga scala. Tuttavia, anche altri prodotti di storage e data lake possono fornire il backend del data lake. Sistemi open-source come Cassandra, HBase e MongoDB possono fornire uno storage affidabile per il data lake. In alternativa, anche i servizi di storage basati su cloud possono essere utilizzati come backend del data store. Tali servizi includono Amazon S3, Google Cloud Storage e Microsoft Azure Blob Store.
A differenza dei database relazionali, l'archiviazione dei big data di solito non impone un formato di archiviazione dei dati. In altre parole, l'archiviazione dei big data supporta formati di dati arbitrari che sono compresi dalle applicazioni che utilizzano i dati. Ad esempio, i dati possono essere memorizzati in CSV, RCFile, ORC o Parquet, per citarne alcuni. Inoltre, è possibile applicare ai file di dati varie tecniche di compressione, come GZip, LZO e Snappy, per migliorare l'utilizzo dello spazio e della larghezza di banda della rete. Questo rende lo storage dei data lake molto più flessibile. Nello stesso data lake è possibile utilizzare più formati e tecniche di compressione per supportare al meglio i requisiti specifici dei dati e delle query.
2) Ingest e Delivery
I data lake necessitano di meccanismi per far entrare e uscire i dati dalla piattaforma di archiviazione di backend. Nei data warehouse tradizionali, i dati vengono inseriti e interrogati utilizzando una qualche forma di SQL e un driver di database, eventualmente tramite ODBC o JDBC. Sebbene esistano driver compatibili per accedere ai dati di Hadoop, la varietà di formati di dati richiede strumenti più flessibili per adattarsi ai diversi formati. Strumenti open source come Sqoop e Flume forniscono interfacce di basso livello per l'inserimento di dati da database relazionali e dati di log, rispettivamente. Inoltre, attualmente si utilizzano programmi e script MapReduce personalizzati per importare dati da API e altre fonti di dati. Gli strumenti commerciali forniscono connettori precostituiti e un'ampia gamma di formati di dati per combinare le fonti di dati con gli archivi di dati del data lake.
Data la varietà di formati dei dati Hadoop, non esiste ancora uno strumento completo per la gestione degli schemi. Il metastore di Hive esteso tramite HCatalog fornisce un gestore di schemi relazionali per i dati Hadoop. Tuttavia, non tutti i formati di dati possono essere descritti in HCatalog. Ad oggi, una buona parte dei dati Hadoop è definita all'interno delle applicazioni stesse, magari utilizzando JSON, AVRO, RCFile o Parquet. Come nel caso degli endpoint e dei formati di dati, gli strumenti commerciali giusti possono aiutare a descrivere i dati del lago e a far emergere più facilmente gli schemi per gli utenti finali.
3) Scoperta e preparazione
A causa della flessibilità dei formati dei dati negli strumenti di gestione dei dati Hadoop e in altre piattaforme di archiviazione backend dei data lake, è comune scaricare i dati nel lake prima di averne compreso appieno lo schema. In effetti, molti dati del lago possono essere altamente destrutturati. In ogni caso, l'economicità dei dati Hadoop consente di preparare i dati dopo la loro acquisizione. Questo è più ELT (extract, load, transform) che ETL (extract, transform, load) tradizionale. Tuttavia, c'è un punto in cui per fare un lavoro utile con un set di dati, è necessario capire il formato dei dati.
Nell'ecosistema open-source, la scoperta e la preparazione possono essere effettuate alla riga di comando con linguaggi di scripting, come Python e Pig. Infine, è possibile utilizzare lavori nativi di MapReduce, Pig o Hive per estrarre dati utili da dati semi-strutturati. Questi nuovi dati accessibili possono essere utilizzati per ulteriori query analitiche o algoritmi di apprendimento automatico. Inoltre, i dati preparati possono essere forniti ai tradizionali database relazionali, in modo che gli strumenti di business intelligence convenzionali possano interrogarli direttamente.
Le offerte commerciali nel settore della scoperta dei dati e della preparazione dei dati di base offrono interfacce basate sul web (anche se alcuni sono strumenti di base on-premises per il cosiddetto "data blending") per analizzare i dati grezzi e quindi elaborare strategie per la pulizia e l'estrazione dei dati rilevanti. Questi strumenti commerciali vanno da interfacce "leggere" simili a fogli di calcolo a interfacce di analisi basate su euristiche che aiutano a guidare la scoperta e l'estrazione dei dati.
4) Trasformazioni e analisi
I sistemi come Hadoop non solo sono più flessibili per quanto riguarda i tipi di dati che possono essere archiviati, ma anche per quanto riguarda i tipi di query e di calcoli che possono essere eseguiti sui dati archiviati. L'SQL è un linguaggio potente per l'interrogazione e la trasformazione dei dati relazionali, ma non è adatto per le interrogazioni su dati non relazionali e per l'impiego di algoritmi iterativi di apprendimento automatico e altri calcoli arbitrari. Strumenti come Hive, Impala e Spark SQL consentono di eseguire query di tipo SQL sui dati Hadoop. Tuttavia, strumenti come Cascading, Crunch e Pig offrono ai dati Hadoop un'elaborazione più flessibile. La maggior parte di questi strumenti si basa su uno dei due motori di elaborazione dati più diffusi: MapReduce o Spark.
Nel data lake vediamo tre tipi di trasformazioni e analisi: trasformazioni semplici, query di analisi e calcolo ad hoc. Le trasformazioni semplici comprendono attività come la preparazione dei dati, la pulizia dei dati e il filtraggio. Le query analitiche saranno utilizzate per fornire una visione sintetica di un set di dati, magari con riferimenti incrociati ad altri set di dati. Infine, il calcolo ad hoc può essere utilizzato per supportare una serie di algoritmi, ad esempio la creazione di un indice di ricerca o la classificazione tramite machine learning. Spesso questi algoritmi sono di natura iterativa e richiedono diversi passaggi sui dati.
5) Streaming
I data warehouse tradizionali supportano query analitiche batch. Tuttavia, nell'ecosistema open source e nei prodotti commerciali stiamo assistendo a una convergenza di architetture ibride batch e streaming. Ad esempio, Spark supporta sia l'elaborazione batch che l'elaborazione in streaming con Spark Streaming. Apache Flink è un altro progetto che mira a combinare l'elaborazione batch con quella in streaming. Si tratta di un'evoluzione naturale, perché fondamentalmente è possibile utilizzare API e linguaggi molto simili per specificare un calcolo batch o streaming. Non è più necessario avere due sistemi completamente diversi. Infatti, un'architettura unificata facilita la scoperta di diversi tipi di fonti di dati.
Anche le architetture ibride di batch e streaming si riveleranno estremamente vantaggiose quando si tratta di dati IoT. Lo streaming può essere utilizzato per analizzare e reagire ai dati in tempo reale, nonché per ingerire i dati nel data lake per l'elaborazione batch. I moderni sistemi di messaggistica ad alte prestazioni, come Apache Kafka, possono essere utilizzati per contribuire all'unificazione di batch e streaming. Gli strumenti di integrazione possono contribuire all'alimentazione di Kafka, all'elaborazione dei dati Kafka in modalità streaming e all'alimentazione di un data lake con dati filtrati e aggregati.
6) Pianificazione e flusso di lavoro
L'orchestrazione nel data lake è un requisito obbligatorio. La pianificazione si riferisce all'avvio di lavori in momenti specifici o in risposta a un trigger esterno. Il flusso di lavoro si riferisce alla specificazione delle dipendenze dei lavori e alla fornitura di un mezzo per eseguire i lavori in modo da rispettare le dipendenze. Un lavoro può essere una forma di acquisizione, trasformazione o consegna di dati. Nel contesto di un data lake, la pianificazione e il flusso di lavoro devono interfacciarsi con le piattaforme di archiviazione ed elaborazione dei dati sottostanti. Per l'azienda, la pianificazione e il flusso di lavoro devono essere definiti tramite un'interfaccia utente grafica e non attraverso la riga di comando.
L'ecosistema open-source fornisce alcuni strumenti di basso livello come Oozie, Azkaban e Luigi. Questi strumenti forniscono interfacce a riga di comando e configurazione basata su file. Sono utili soprattutto per orchestrare il lavoro principalmente all'interno di Hadoop.
Gli strumenti commerciali di integrazione dei dati forniscono interfacce di alto livello per la programmazione e il flusso di lavoro, rendendo tali attività più accessibili a una più ampia gamma di professionisti IT.
7) Metadati e governance
Due aree che sono ancora meno mature nei prodotti di data lake come Hadoop sono i metadati e la governance. I metadati si riferiscono alle richieste di aggiornamento e di accesso e allo schema. Queste funzionalità sono fornite nel contesto del data warehouse relazionale convenzionale, dove gli aggiornamenti sono più facilmente tracciabili e lo schema è più vincolato.
Il lavoro in open source sui metadati e la governance sta progredendo, ma non c'è un accordo diffuso su una particolare implementazione. Ad esempio, Apache Sentry aiuta ad applicare l'autorizzazione basata sui ruoli per i dati Hadoop. Funziona con alcuni strumenti di gestione dei dati Hadoop, ma non con tutti.
Le aziende che cercano di gestire meglio i metadati e la governance attualmente utilizzano soluzioni personalizzate o semplicemente vivono con funzionalità limitate a questo proposito. Recentemente LinkedIn ha reso pubblico uno strumento interno chiamato WhereHows che potrebbe migliorare la capacità di raccogliere, scoprire e comprendere i metadati nel data lake. I fornitori di soluzioni commerciali per l'integrazione dei dati dovranno sviluppare nuovi modi per gestire i metadati e la governance nel data lake aziendale.
8) Sicurezza
Anche la sicurezza nei vari backend dei data lake è in evoluzione e viene affrontata a diversi livelli. Hadoop supporta l'autenticazione Kerberos e l'autorizzazione in stile UNIX attraverso i permessi di file e directory. Apache Sentry e Record Service di Cloudera sono due approcci all'autorizzazione a grana fine all'interno dei file di dati Hadoop. Non esiste un accordo universale sull'approccio all'autorizzazione e di conseguenza non tutti gli strumenti Hadoop supportano tutti i diversi approcci. Questo rende difficile la standardizzazione al momento, perché si limitano gli strumenti che si possono usare a seconda dell'approccio di autorizzazione selezionato.
La mancanza di uno standard rende difficile per i prodotti commerciali fornire un supporto completo in questo momento. Tuttavia, nel frattempo, i prodotti commerciali possono fungere da gateway per il data lake e fornire una buona quantità di funzionalità di sicurezza che possono aiutare le aziende a soddisfare i loro requisiti di sicurezza nel breve termine, per poi adottare meccanismi standardizzati non appena saranno disponibili.
Gli strumenti utilizzati per gestire e analizzare i dati in un data lake includono
Alcuni strumenti comuni che vengono utilizzati per gestire e analizzare i dati in un data lake includono:
- Apache Hadoop: Un framework open-source comunemente utilizzato per costruire e gestire i data lake. Include un sistema di storage distribuito (HDFS) per l'archiviazione dei dati e una serie di strumenti per l'elaborazione e l'analisi dei dati, come MapReduce, Pig e Hive.
- Apache Spark: Un sistema di calcolo distribuito open-source progettato per l'elaborazione di dati ad alta velocità e su larga scala. Viene spesso utilizzato per analizzare i dati in un data lake e include una serie di strumenti e librerie per lavorare con i dati, come librerie SQL e di apprendimento automatico.
- Elasticsearch: Un motore di ricerca e analisi comunemente usato per indicizzare e interrogare i dati in un data lake. È progettato per gestire grandi volumi di dati e per fornire funzionalità di ricerca veloci e flessibili.
- Amazon S3: Servizio di storage basato su cloud, spesso utilizzato per archiviare i dati in un data lake. È scalabile, durevole e sicuro e include una serie di funzioni che facilitano la gestione e l'analisi dei dati su scala.
- Tableau: Un popolare strumento di business intelligence e di visualizzazione dei dati, spesso utilizzato per esplorare e analizzare i dati in un data lake. Consente agli utenti di creare dashboard e visualizzazioni interattive che possono aiutare a dare un senso a set di dati complessi.
L'infrastruttura del data lake si riferisce all'hardware, al software e ai servizi utilizzati per costruire e gestire un data lake.
Servizi utilizzati per costruire e gestire un data lake
Questi includono tipicamente:
- Sistemi di archiviazione distribuiti, come Apache Hadoop HDFS o Amazon S3, utilizzati per archiviare grandi quantità di dati in modo scalabile e con tolleranza agli errori.
- Strumenti di elaborazione e analisi dei dati, come Apache Spark o Elasticsearch, utilizzati per eseguire varie operazioni sui dati, come la pulizia, la trasformazione e l'aggregazione.
- Gli strumenti di governance e sicurezzadei dati, come Apache Ranger o AWS IAM, vengono utilizzati per controllare l'accesso ai dati, garantirne la qualità e proteggerli da accessi non autorizzati o manomissioni.
- Strumenti di integrazione dei dati e di ETL, come Apache NiFi o Talend, utilizzati per estrarre i dati da varie fonti, trasformarli in un formato coerente e caricarli nel data lake.
- Gli strumenti di visualizzazione dei dati e di reporting, come Tableau o Qlik, vengono utilizzati per esplorare e analizzare i dati nel data lake e per creare dashboard e report che possono essere condivisi con altri.
Il bilancio
Non manca il clamore intorno alla promessa dei big data, dei data lake, dei prodotti data lake e delle nuove tecnologie ora disponibili per sfruttare la potenza della piattaforma. Man mano che il mercato matura, sarà sempre più importante iniziare con in mente il fine e costruire un piano strategico in grado di scalare e crescere con l'evolversi delle vostre esigenze. Cercate un fornitore di integrazione dei dati moderno che abbia una profondità tecnica e un'ampiezza nel nuovo mondo, oltre a un'esperienza pratica con le implementazioni aziendali e le partnership. Non accontentatevi della solita vecchia integrazione dei dati mentre costruite la vostra visione di un data lake aziendale per alimentare le analisi e gli approfondimenti di prossima generazione.
Prossimi passi:
- Guardate una dimostrazione di SnapLogic
- Contattateci per iniziare a collegare più velocemente dati, applicazioni, API e cose.