Con l’avvento e il sempre maggiore utilizzo dei big data si è affermato il concetto di data lake. In primissima analisi, il data lake (“lago di dati”) è uno strumento per lo storage e l’analisi di grandi quantità di dati. Per non correre il rischio di confondere data lake con data warehouse e per capire la necessità di inserire un nuovo strumento di storage di dati, analizziamo in dettaglio cosa è il data lake.
I big data presentano tre caratteristiche fondamentali:
– Volume: si tratta di grandissime quantità di dati;
– Velocità: enorme di produzione e memorizzare le informazioni;
– Varietà: la provenienza dei dati può essere la più varia. I dati social, ad esempio, hanno la caratteristica di essere a bassa strutturazione e cioè difficilmente inquadrabili con le tradizionali tecniche di organizzazione dei database. Si pensi ad esempio a social come Instagram dove ci sono foto collegate a hashtag con like e indicazioni geolocalizzate.
Ed è proprio l’ultima caratteristica che ha portato in auge i data lake. Vediamo a cosa serve il data lake e come viene integrato nell’infrastruttura IT delle aziende.
Cos’è un data lake
Il data lake è un repository condiviso che permette di acquisire e archiviare grandi quantità di dati strutturati e non strutturati (da quelli del Crm ai post dei social media, dai dati Erp alle info delle macchine di produzione), in formato nativo.
Pertanto i data lake acquisiscono e conservano dati non ancora elaborati per uno scopo specifico. Un dato in un data lake non viene definito fino al momento in cui non viene eseguita una query che lo coinvolga.
La grande novità risiede nella possibilità di archiviare dati con formati molto differenti senza necessità di doverli uniformare e “normalizzare”. Questo permette di estrarre dati da qualunque fonte informativa senza che questa sia organizzata come un data base relazionale, organizzato in tabelle con strutture e caratteristiche definite a priori.
Differenze tra data lake e data warehouse
Lo scopo del data lake pertanto è di rendere disponibile una visione dei dati non necessariamente raffinata a supporto delle attività di data discovery, caratteristica che lo rende adatto a utenti esperti.
Al contrario, il data warehouse (DWH) ha l’obiettivo di rendere disponibile, attraverso tool di business e big data analytics, una visione di dati elaborati per uno scopo e/o un processo di business ben preciso.
A questo punto va fatta una puntualizzazione in merito agli utilizzatori dei dati. Abbiamo visto che gli utenti che si approcciano a un data lake devono essere utenti esperti di dati, meglio conosciuti come data scientist, mentre gli utilizzatori dei DWH possono essere utenti meno esperti. Questo perché il processo di DWH è caratterizzato da una fase preliminare di standardizzazione delle informazioni e di modellazione dei dati tramite processi di ETL (extraction, transformation e loading), e pertanto i dati vengono “preparati” per poter essere accolti in dashoboard e report già definiti che l’utente finale può lanciare ed analizzare. Non c’è pertanto la necessità di pensare e configurare il report al momento dell’analisi e le informazioni che si ricercano sono state già configurate a monte nel processo.
In altre parole i sistemi di data warehouse presuppongono una fase preparatoria dei dati che è affidata a esperti del DWH in questione, che hanno il compito di organizzare i dati e collegarli per trarre informazioni. Questi rilasciano all’utente finale uno strumento di facile utilizzo e analisi. Solitamente questa fase di costruzione delle reportistiche sono affidate a consulenti esterni che hanno forti skill di analisi dei dati, utilizzo del DWH specifico e che analizzano il processo di business congiuntamente con gli utilizzatori finali per poter creare report standardizzati e di semplice utilizzo.
Ad esempio, io mi occupo di DWH in ambito SAP (più precisamente utilizzando la piattaforma SAP BW) e il mio lavoro è suddivisibile nelle seguenti fasi:
– analisi dei processi di business atta a definire le esigenze di reportistica
– disegno del modello dati da implementare per determinare a monte le informazioni che si vogliono estrapolare dai dati e decidere quali dati mettere in relazione tra di essi
– realizzazione degli ETL
– rilascio delle reportistiche standardizzate agli utilizzatori finali.
Nei data lake queste fasi vengono bypassate e lasciate all’utilizzatore finale che per tanto ha necessità di avere approfondite conoscenze tecniche e di analisi dati.
Nella maggior parte delle aziende l’80% degli utenti sono “operativi”: usano report e verificano KPI predefiniti relativamente semplici. Per questi utenti un sistema di tipo Data Warehouse è più che sufficiente: è strutturato, facile da usare ed è costruito appositamente per rispondere a domande specifiche.
Circa il 10%, 15% degli utenti eseguono analisi più approfondite sui dati. Spesso accedono ai sistemi sorgente per usare dati che non sono disponibili nel database, o acquisiscono altri dati da sorgenti esterne. Spesso sono questi utenti che generano i report che poi vengono distribuiti in azienda.
Solo una percentuale minima di utenti invece esegue analisi approfondite dei dati, integrando nuove sorgenti dati, mescolando dati disomogenei tra loro, e sa come leggerli. Nella maggior parte dei casi questi utenti non utilizzano nemmeno i Data Warehouse, perché lavorano sui dati ad un livello diverso, prima che siano strutturati, per offrire una risposta ad un quesito specifico.
Le differenze tra DWH e data lake sono riassumibili mediante il seguente schema:
DATA LAKE | DATA WAREHOUSE | |
---|---|---|
Struttura dei dati | Grezzi (strutturati, semi-strutturati e non strutturati) | Strutturati, elaborati |
Finalità dei dati | Da definire, definita Nota: è possibile che vi siano dati per i quali la finalità non è stata definita (ad uso futuro) | Definita |
Schema | On Read | On Write |
Utenti | Data scientist | Business user |
Accessibilità | Elevata accessibilità e semplicità di aggiornamento | Accesso e aggiornamenti più complicati e costosi |
Storage | Costi limitati e storage distribuito (potenzialmente espandibile su cloud) | Costi e review dei processi di ingestion onerosi |
Struttura dei dati: dati grezzi e dati elaborati
Si definiscono grezzi i dati non ancora elaborati per una finalità specifica. Nei data lake, la cui caratteristica principale è la possibilità di acquisire i raw data (dati delle singole sorgenti in formato nativo) senza preoccuparsi di definire a priori una struttura in fase di acquisizione, vengono principalmente archiviati dati grezzi, non elaborati; mentre nei data warehouse è necessario effettuare un’analisi preventiva allo scopo di ottimizzare l’acquisizione dei dati stessi attraverso i classici processi ETL (Extract, Transform & Load), durante i quali possono essere applicate, oltre alle logiche di trasformazione, processi aggiuntivi di data quality.
Finalità: non determinata e in uso
La finalità dei dati conservati in un data lake non è definita. Questo implica che nei data lake i dati sono meno organizzati e filtrati rispetto a quanto accade nei data warehouse.
Per questo motivo, i data lake richiedono in genere una capacità di archiviazione maggiore rispetto ai data warehouse. Inoltre tutti questi dati grezzi comportano il rischio di trasformare i data lake in data swamp, se non vengono adottate misure appropriate di data quality e data governance
Memorizzando esclusivamente dati elaborati, i data warehouse non consumano prezioso spazio di archiviazione, in quanto i dati che non saranno mai utilizzati non vengono conservati. Inoltre, i dati elaborati possono essere compresi da un pubblico più ampio.
Schema: on-write e on-read
In un sistema di tipo Data Warehouse, si parte da un set di dati grezzi che vengono strutturati e processati attraverso un approccio cosiddetto di Schema-on-write, dove prima viene definita la struttura del database che deve ospitare i dati, poi i dati vengono scritti all’interno della struttura predefinita e, nel momento in cui sono prelevati per l’analisi, vengono restituiti nel formato predefinito.
Un sistema di tipo Data Lake invece adotta un approccio di Schema-on-read dove i dati sono acquisiti nel loro formato nativo. Ad ogni elemento vengono associati un identificatore e un insieme di metadati che lo qualificano di modo tale che , nel momento in cui è necessario accedere ai dati alla ricerca di un risultato specifico, il data lake possa essere interrogato per restituire tutti i dati rilevanti.
Accessibilità: flessibile e sicura
I data lake non hanno struttura, dunque sono più semplici da accedere e da modificare. Inoltre, le modifiche ai dati possono essere apportate rapidamente, in quanto i data lake presentano pochissime limitazioni.
I data warehouse sono più strutturati da un punto di vista progettuale. Uno dei principali vantaggi offerti dai data warehouse è che l’elaborazione e la struttura dei dati rendono i dati stessi più semplici da decifrare, mentre le limitazioni della struttura rendono i data warehouse difficili e costosi da manipolare.
Vantaggi nell’utilizzo di un data lake
Notevole ampliamento delle informazioni alle quali si ha accesso
questo ovviamente grazie a un set potenzialmente infinito di tipologie di dati. Di fatto, essendo il quesito di analisi a determinare la selezione dei dati dai quali attingere informazioni, nel data lake la ricerca accede a tutte le informazioni disponibili, indipendentemente dalla sorgente che le ha generate.
Riduzione dei costi di archiviazione e spazio infinito
Con un sistema tradizionale, è necessario prevedere in anticipo tutti gli usi dei dati di cui si avrà bisogno. Ma, con il mutare delle esigenze di business, cambiano anche i requisiti di analisi. In aggiunta, professionisti diversi in azienda hanno bisogno di diversi set di dati. Nei sistemi data warehouse, aumentare il volume e la struttura del database ha dei costi notevoli e porta via molto tempo. Con il data lake, si ha a disposizione spazio infinito grazie a metodi di conservazione dei dati su file system distribuiti.
Riduzione dei costi di consolidamento dei dati
Riunire tra loro database con strutture diverse è complesso e richiede uno sforzo ingente di data modelling. Inoltre, per arginare il pericolo di rapida obsolescenza del modello dati, è necessario prevedere i nuovi set di dati che presumibilmente si vorranno integrare. I file system distribuiti portano il data lake a sistema di scale-out storage potenzialmente infinito per il consolidamento dei dati.
Riduzione del Time-to-market
Progetti di ampliamento e consolidamento dei database possono richiedere tempi lunghi, che spesso impediscono di rispondere tempestivamente al quesito di business. Quando i dati sono pronti per essere analizzati, può essere troppo tardi per trarne valore. Non dovendo affrontare progetti di ampliamento e consolidamento dei dati, l’accesso alle informazioni è sempre immediato e real-time.
Condivisione e democratizzazione dell’accesso alle informazioni
Il data lake mette a disposizione di tutti gli insight ottenuti. Li rende accessibili a chiunque abbia i permessi tramite una vista unificata dei dati all’interno dell’organizzazione.
Architettura di un data lake
Un data lake ha un’architettura piatta in cui i dati possono essere non strutturati, semi-strutturati o strutturati e raccolti da diverse fonti all’interno dell’organizzazione; al contrario, un data warehouse archivia i dati in file o cartelle. Il data lake può essere on-premise o su cloud.
Per la natura della loro architettura, i data lake offrono una scalabilità massiva fino alla scala exabyte. Questo è molto importante soprattutto perché quando si crea un data lake non si conosce in anticipo il volume dei dati che verranno trattenuti. I sistemi di storage di dati tradizionali non offrono questo tipo di scalabilità.
Questo tipo di architettura va a vantaggio dei data scientist poiché consente loro di accedere ai dati dell’intera azienda, analizzarli, condividerli e fare riferimenti incrociati, inclusi tra dati eterogenei da campi diversi, per ottenere nuove informazioni. Possono inoltre sfruttare gli strumenti di analisi dei big data e di machine learning per analizzare i dati in un data lake.
Semplificando, potremmo raggruppare le componenti di un data lake in quattro categorie, che rappresentano le quattro fasi di gestione dei dati:
- Data Ingestion e Storage, ossia la capacità di acquisire dati in tempo reale o in batch; e la capacità di conservare e accedere a dati strutturati, semi strutturati e non strutturati nel formato originario in cui sono prodotti e tramite un sistema di ruoli configurabile;
- Data Processing, ossia la capacità di lavorare sui dati grezzi in modo che siano pronti per essere analizzati con procedure standard; ed anche la capacità di ingegnerizzare le soluzioni di estrazione di valore dai dati, attraverso processi automatici e periodici, che sono il risultato delle operazioni di analisi;
- Data Analysis, ossia la capacità di creare modelli per l’estrazione sistematica di informazioni dai dati, che può avvenire in tempo reale o attraverso processi eseguiti periodicamente;
- Data Integration, ossia la capacità di agganciare alla piattaforma applicativi che consentano di interrogare il data lake ed estrarne dati in formati utilizzabili per scopi specifici.
Esempi di data lake
I data lake sono nati dall’esigenza di “imbrigliare” i big data e sfruttare i dati grezzi, non strutturati o dalla struttura granulare, per l’apprendimento automatico; tuttavia, rimane la necessità di creare data warehouse per finalità di analisi da parte degli utenti aziendali. Vediamo alcune esigenze specifiche di business come portino a preferire uno o l’altro sistema di storage.
Settore sanitario: data lake per l’archiviazione di informazioni non strutturate
I data warehouse sono stati utilizzati per anni nel settore sanitario, senza però mai riscuotere un grande successo. A causa della natura non strutturata della maggior parte dei dati sanitari (certificati dei medici, dati clinici, ecc.) e dell’esigenza di informazioni approfondite in tempo reale, i data warehouse in genere non rappresentano un modello ideale.
I data lake consentono di archiviare sia dati strutturati che dati grezzi, offrendo un’alternativa più vantaggiosa per le aziende del settore sanitario.
Istruzione: i data lake offrono soluzioni flessibili
Negli ultimi anni, il valore dei big data nel settore dell’istruzione è diventato evidente. Dati su frequenza degli studenti, presenza ecc possono aiutare a prevedere potenziali problemi prima che si verifichino. Soluzioni flessibili per i big data hanno inoltre aiutato gli istituti di istruzione a semplificare la fatturazione, migliorare le raccolte fondi e tanto altro.
La maggior parte dei dati utilizzati in questo settore è estesa e molto grezza quindi, il più delle volte, gli istituti possono trarre maggiore vantaggio dalla flessibilità dei data lake.
Finanza: i data warehouse fanno presa sulle masse
Nel settore finanziario un data warehouse è spesso il modello di storage migliore, in quanto può essere strutturato per l’accesso da parte dell’intera azienda, anziché da un singolo data scientist.
I big data hanno aiutato il settore dei servizi finanziari a fare grandi passi avanti e i data warehouse hanno avuto un ruolo fondamentale in questo senso. L’unico motivo per cui un’azienda che si occupa di servizi finanziari potrebbe scegliere il modello alternativo è perché è più economico, anche se non altrettanto utile per altri scopi.
Trasporti: i data lake aiutano nelle previsioni
Nel settore dei trasporti, in particolare nella gestione della supply chain, la capacità di previsione garantita dai dati flessibili contenuti in un data lake può assicurare riduzione dei costi derivante dall’analisi dei dati dei moduli della pipeline dei trasporti.
Dati destrutturati e data lake sono la morte del data warehouse?
Contrariamente a quello che si potrebbe pensare le due tecnologie non sono in competizione tra loro – sono invece complementari. Negli ultimi anni, soprattutto grazie al consolidamento dei servizi in cloud il paradigma legato ai sistemi di reportistica si è continuato a evolvere introducendo nuovi concetti e architetture che fondono le tecnologie legate a data lake, big data e data warehouse. Da questa fusione sono nati i “modern data warehouse” e i “real time data warehouse”, che prevedono come primo livello di integrazione proprio i data lake e i moduli big data.
Tutto questo per dire che i due sistemi di storage hanno obiettivi molto differenti l’uno dall’altro. I data lake forniscono una base dati analizzabile in tempo reale da data scientist con obiettivi di analisi ogni volta diversi. Il DWH produce report standardizzati e che spesso prevedono ETL e processi di trasformazione molto complessi e sofisticati.
Nella mia ottica, la velocità dei big data richiede di avere un data lake in azienda, a cui però è necessario affiancare un DWH per analizzare la situazione complessiva e produrre report di semplice analisi.