Al giorno d’oggi le imprese di tutto il mondo devono gestire una mole sempre più ampia di dati e non è sempre facile scegliere in che modo archiviarli. La gran parte di tali informazioni non è strutturata e si pone così una doppia sfida: trovare un modo di immagazzinare i dati e conservare la capacità di elaborarli con velocità.
È proprio in questo scenario attuale che entrano in gioco i Data Lake. Un Data Lake non è altro che una archivio centralizzato nel quale vengono archiviati i Big Data in formato grezzo, provenienti da moltissime fonti differenti.
Può contenere dati strutturati, non strutturati o semi-strutturati e ciò vuole dire che può ospitare dati in formato più flessibile per uso futuro. Memorizzando le informazioni, il Data Lake le associa a identificatori e tag di metadati per accelerarne il recupero successivo.
Proviamo allora a comprendere come agisce un Data Lake, in cosa si distingue dai tradizionali sistemi di storage e su quale architettura si fonda.
Che cos’è un Data Lake e come funziona
Un Data Lake è una categoria di repository di dati capace di archiviare quantità di dati strutturati e non di grandi dimensioni e di differente tipologia nel loro formato nativo. Questo genere di storage offre una visualizzazione non elaborata dei dati, garantendo grande efficienza nella gestione dei dati alle aziende.
I dati non strutturati sono le informazioni che non sono state elaborate per uno scopo preciso. Infatti, nel Data Lake un singolo dato non è definito fino al momento in cui una query lo coinvolge (schema on read). Dunque, con i Data Lake nessun dato viene filtrato o eliminato prima di eseguirne l’archiviazione e non esistono restrizioni temporali o vincoli per l’analisi, permettendo di utilizzarlo più volte.
I sistemi Data Lake consentono diversi schemi e non necessitano di definirne uno a priori. Ecco allora che diventa possibile coordinare differenti tipi di dati in svariati formati. L’espressione Data Lake è stata usata per la prima volta da James Dixon, Chief Technology Officer di Pentaho.
La metafora dell’acqua è perfettamente idonea poiché tale storage archivia un pacchetto di dati nel suo stato naturale, come se si trattasse di un fluido non ancora filtrato. Il flusso di dati proviene da più fonti e si getta nel “lake” per essere archiviato nel formato originale.
Quindi con un Data Lake gli utenti possono accedere e analizzare i dati dove sono e come sono, senza spostarli in altro sistema. Ad ogni modo, è possibile applicare una procedura di automazione per duplicare un report. È bene dire però che questo meccanismo di archiviazione deve disporre di una governance e manutenzione costante per far si che i dati siano accessibili. In caso contrario, i dati diventerebbero inutili e costosi, trasformandosi nei cosiddetti data swamp.
Data Lake e Data Warehouse
Nonostante siano spesso confusi, Data Lake e Data Warehouse sono due componenti differenti e sono nati per scopi molto diversi. L’unica cosa che hanno in comune è che entrambi sono repository di storage per Big Data. Ci sono comunque aziende che per i propri bisogni di business utilizzano entrambe le tipologie.
Il Data Warehouse propone un modello di archiviazione dati strutturato e concepito per la reportistica e questa è la differenza principale con i Data Lake. Infatti, quest’ultimo immagazzina dati non strutturati e senza un obiettivo specifico.
Invece nel Data Warehouse i dati devono essere prima elaborati, decidendo quali includere e quali no, secondo un processo definito schema on write. Elaborare i dati prima di inserirli in un Data Warehouse può richiedere molto tempo, mesi o anni, con un meccanismo complesso che non consente di acquisirli nell’immediato.
Al contrario, con un Data Lake è possibile raccogliere le informazioni da subito, decidendo come impiegarle in un altro momento. Considerando la loro struttura predefinita, i classici Data Warehouse sono utilizzati da analisti che già sanno preventivamente di quali dati necessitano per la reportistica standard.
I Data Lake sono ideali soprattutto per i data scientist che eseguono ricerche usando i dati ed applicando man mano filtri e analisi avanzate affinché possano essere utili. Infine, i due tipi di storage si basano su hardware diversi. I Data Warehouse sono più costosi, mentre i Data Lake sono più economici in quanto impiegano hardware di largo consumo.
L’architettura di un Data Lake
Un Data Lake si basa su un’architettura piatta nella quale i dati possono essere strutturati, non struttati e semi-strutturati e può funzionare on-premise oppure su cloud. Per loro stessa natura i Data Lake garantiscono una maggiore scalabilità fino alla scala exabyte.
Questo è un elemento non trascurabile poiché quando si costruisce uno storage di questo tipo non si sa in anticipo la mole di dati che si andranno a trattare. Invece i sistemi di archiviazione tradizionali non offrono una scalabilità così ampia.
Ovviamente tale architettura è un enorme vantaggio per i data scientist in quanto permette di avere accesso ai dati aziendali, condividerli e incrociarli anche in maniera eterogenea per ricavare nuove informazioni.
Quando però si decide di ricorrere ad una soluzione come i Data Lake, la prima cosa da fare è scegliere tra l’approccio open source o affidarsi ad un’offerta di software proprietari. Il software open source si può scaricare in forma gratuita dai portali della Linux Foundation e della Apache Software Foundation, per poi svilupparlo e personalizzarlo autonomamente.
Invece i fornitori di software proprietari assicurano, a pagamento, un gran numero di versioni commerciali di tale tecnologia con annessi servizi di assistenza tecnica. Tra le principali aziende che propongono strumenti per Data Lake ci sono AWS con Amazon EMR e S3, a cui si aggiungono strumenti di supporto come AWS Lake Formation e AWS Glue.
Molto affidabili sono pure Cloudera Data Platform, Databricks e Dremio. A queste società si aggiunge anche Google Cloud Data Fusion che si occupa di integrazione dei dati, con una serie di strumenti per il trasferimento di Data Lake on-premise nel cloud. Per finire, si possono citare HPE GreenLake, Azure HD Insight, Qubole e Snowflake.