Home Blog Data Lake o Data War ...

Data Lake o Data Warehouse?

Marco Belmondo

di Marco Belmondo, Chief Marketing Officer di 3rdPlace

Da quando lavoro nel mondo dei Dati una delle parole (composte) che sento più spesso è Data Lake. Inutile negarlo, anche in tecnologia ci sono le mode! E non lo nascondo, per noi di Datrix | AI applications più Data Lake vendiamo, meglio è. Infatti le soluzioni di Data Governance sono una delle tre aree di attività delle nostre company 3rdPlace | user & customer AI e FinScience | investment AI, insieme a Data Intelligence e Data Modeling. Ma personalmente sono “rovinato” dal fatto di aver lavorato sia come fornitore che come cliente e mentalmente mi metto sempre la casacca del cliente. E allora ho voluto approfondire, confrontandomi con i miei colleghi e in particolare con Claudio Masolo e la sua notevole esperienza nel campo delle architetture dati.

La conclusione, forse banale, è che il Data Lake non è la soluzione unica e ottimale per tutte le aziende e per tutte le esigenze. Ma veniamo ai dettagli, sicuramente più interessanti per chi deve decidere cosa fare.

Molto spesso usato nella stessa frase per confronto con Data Lake, è il termine Data Warehouse. Entrambe sono tecnologie utilizzate nel campo dei big data ma non sono intercambiabili e non vanno confuse: il Data Lake è una vasta quantità di dati grezzi, anche e spesso non strutturati (testi, immagini, file vocali), il cui scopo non è ancora ben definito, che devono essere poi analizzati, raffinati e modellati per fornire insight e predizioni, favorire decisioni e suggerire azioni. Ogni elemento del Data Lake riceve un identificatore e un insieme di metadati a corredo (schema-on-read). Le fonti dati possono essere numerose ed eterogenee: il CRM, i siti, le app, i social media, i dispositivi IoT,  i gestionali, email, fogli Excel, documenti Word, messaggi WhatsApp, …, senza limite alla fantasia.

Il Data Warehouse è un contenitore di dati strutturati, filtrati e già processati per uno scopo ben circoscritto; i dati vengono scritti nella struttura predefinita e poi letti nel formato desiderato (cosiddetto schema-on-write).

Nella tabella seguente sono riportate le principali 4 differenze fra Data Lake e Data Warehouse.

Data LakeData Warehouse
Tipo datiGrezziStrutturati
Scopo dei datiNon ancora determinatoBen definito
UtentiData ScientistBusiness
GestioneAltamente accessibile e facile da aggiornareEffettuare modifiche è molto complicato e costoso

Per dati grezzi si intendono dati che sono stati salvati così come si trovano in origine e non sono stati ancora processati per uno specifico scopo. Al contrario i dati strutturati sono dati che hanno già subito una trasformazione per essere funzionali ad un determinato scopo. Per questo i dati grezzi sono in quantità superiore e necessitano di conseguenza di una maggiore capacità di storage, ma non essendo ancora stati processati sono più facili da adattare ed elaborare per scopi vari e sono ideali per le applicazioni di machine learning. Per contro si potrebbe incorrere in casi di data swamp (“pantano di dati” ossia eccesso di dati sporchi) se non si adottano tecniche di data quality e data governance in place. Per questo è stato indicato, come utente ideale del Data Lake, il data scientist interno od esterno all’azienda (dipende dalla dimensione o dall’attività principale dell’azienda stessa e naturalmente dalla competenza del personale interno).

Il Data Warehouse d’altro canto gestendo solo dati strutturati ha solitamente necessità di una minor capacità di storage, non è necessario infatti immagazzinare dati che non verranno mai utilizzati per lo scopo per cui è stato progettato. Essendo dati strutturati e già in pronti per uno scopo, sono dati di più facile comprensione per un pubblico meno tecnico, per questo è stato indicato come utente tipico una persona più orientata al business.

Dal punto di vista della gestione, il Data Lake è più flessibile e duttile in quanto è costruito per accettare dati di tipologie differenti. Il Data Warehouse invece è più rigido e costoso (richiedendo anche tempi più lunghi) dal punto di vista delle modifiche, ma questo non deve essere visto solo in accezione negativa, in quanto per alcune applicazioni la rigidità sulla tipologia e qualità del dato in ingresso e sulle variazioni alla struttura dati sono fortemente volute e necessarie.

Un’altro aspetto da considerare è l’accesso al dato, inteso come la metodologia che permette all’utente di fruire dei dati. Nel caso di Data Warehouse l’accesso è solitamente di tipo sql like, mentre per il Data Lake uno degli approcci più utilizzati è attraverso layer api. La motivazione è da ricercarsi nell’eterogeneità dei dati e di conseguenza anche delle tecnologia con cui è implementato il Data Lake (es. MongoDb). Un layer api permette di avere un’interfaccia comune verso l’utente e lasciare a chi sviluppa il Data Lake la gestione della complessità dell’implementazione della query nelle varie tecnologie.

E’ perciò indispensabile valutare, per ogni specifica applicazione, se sia il caso di implementare un Data Lake o un Data Warehouse.

Ma quindi cosa serve all’azienda, un Data Lake o un Data Warehouse? Come ho detto dipende dalla specifica applicazione ma generalmente alle organizzazioni servono entrambi. Il concetto di Data Lake è nato nell’era dei big data per sfruttare i benefici del dato grezzo, non strutturato ed elaborabile per individuare insight diversi, orizzontali sulle varie divisioni aziendali. Per un’azienda è importante avere anche un Data Warehouse per le figure più di business (marketing & sales).