Franco Perduca
Chief Technology Officer - Bi Factory
Vediamo innanzitutto alcuni punti basilari, unendo i quali risulta chiaro il perché di un Data Lakehouse.
Big Data e il Cloud
Le origini del data lakehouse
Un tempo, non molto lontano, prima della nascita del data lakehouse il termine big data era una novità. Questo perché c’erano solo poche organizzazioni al mondo che avevano raccolto abbastanza dati da poterli definire big data. Oggi non è più così: l’avvento del cloud e la conseguente disponibilità di uno storage “infinito” a costi bassi da una parte e la necessità di analisi con approfondimenti per “carotaggi” sempre più dettagliati, assieme alla necessità di applicazioni di apprendimento automatico per costruire modelli predittivi, dall’altra parte porta le aziende ad accumulare sempre più dati.
Tutto questo porta ad avere quantità di dati importante, ma il termine big data non si riferisce solo al volume di dati con cui abbiamo a che fare. Quando parliamo di big data, in realtà ci riferiamo a diverse caratteristiche dei dati.
Le cinque V dei big data comprendono:
- Il volume, cioè la quantità di dati che si trattano.
- La varietà dei dati, che possono provenire da fonti diverse e di diverso tipo: ci sono i dati non strutturati come video o i dati strutturati che si utilizzano con i cruscotti di business intelligence.
- I big data si riferiscono anche alla velocità di ricezione: ci sono dati in batch archiviati in un file system da qualche parte o dati continui in tempo reale che vengono ricevuti a intervalli molto periodici.
- Un’altra caratteristica importante dei big data è la veridicità. I big data non sono utili se non sono dati di alta qualità, dati puliti, dati senza valori mancanti, senza errori e altre carenze.
- Infine, i big data devono portare i dati da volume a valore estraendo informazioni da dati puliti e di alta qualità. ,
Le Regole Oscure dei Silos di Dati
Spesso e volentieri ogni reparto, il team all’interno della azienda raccoglie dati, ma non lo fa in modo concertato e orchestrato a partire da dati grezzi. Maturando però, ogni reparto/team si rende di non aver bisogno di accedere solo ai propri dati, ma anche a quelli raccolti da altri team, e spesso ci si rende conto che i loro dati sono ormai “isolati”, non collegati ad altri archivi di dati e quindi non utilizzabile dalla maggior parte degli utenti dell’organizzazione.
Non hanno una coerenza nel rispetto di logiche aziendali ma:
- ciascuna applica le proprie logiche;
- non hanno una certificazione nel rispetto di quest’ultime;
- non seguono un processo di validazione.
In pratica ogni reparto/team finisce nel lavorare e creare il proprio “bozzolo” isolato dal mondo aziendale.
Quindi con questi “bozzoli” le informazioni diventano isolate, i dati finiscono spesso per essere duplicati e i dati duplicati sono dati non mantenibili; le verifiche, la sicurezza, la governance su di essi sono tutte “aree grigie”, per usare un eufemismo.
In questo modo portare i dati da volume a valore è molto, molto difficile, se non impossibile perché nessuno ha tutti i dettagli per ottenere il quadro generale. Ogni “bozzolo” spesso nasconde “giardini di potere” con regole oscure e/o costudite con gelosia. Il risultato è che non vi è un sistema solido per mantenere i dati sicuri, conformi, di qualità e con unica verità; è necessario un modo per far confluire tutti i dati in un unico repository centralizzato che funga da unica fonte di verità.
Data Warehouse: Oltre l’excel hell
Il problema dei silos di dati, traducibile in alcuni contesti in “excel hell”, è affrontabile attraverso l’utilizzo di data warehouse aziendale. Che cos’è un data warehouse? È un archivio strutturato per l’elaborazione analitica e il reporting. Contiene dati trasformati provenienti da fonti diverse tramite procedure di elaborazione, estrazione, trasformazione e caricamento per la validazione, applicazione di regole aziendali, certificazione e “messa in sicurezza” del dato; In sintesi il data warehouse funge quindi da unica fonte di verità affidabile per l’organizzazione e consente di accedere facilmente ai dati in modo molto intuitivo grazie anche a strumenti di presentazione come ad esempio Power BI.
I data warehouse esistevano prima che le piattaforme cloud diventassero onnipresenti, è una “metodologia” che ha circa una trentina di anni.
Un limite del data warehouse è che gestisce solo dati strutturati; Se si pensa ai modelli di machine learning alcuni lavorano con dati non strutturati come immagini, testi, audio e video che i data warehouse non supportano. Altri casi d’uso oltre data science e machine learning, streaming e monitoraggio in tempo reale non sono supportati in modo adeguato dai soli dati strutturati. Da aggiungere inoltre che non disaccoppiano il motore di calcolo e lo storage; entrambi vanno di pari passo portando a picchi di carico e quindi di costo.
Riassumendo formati non strutturati sono sempre più importanti; in unione a questo il fatto di poter gestire formati dati open, di separare calcolo e storage a basso costo e centralizzato per archiviare tutti i tipi di dati, non solo quelli strutturati, ci porta al data lake per gestire queste situazioni.
Data Lake: Un Repository unico per i dati
Si tratta di un unico repository per tutti i dati aziendali, sia che si tratti di dati strutturati o non strutturati, di dati batch o in streaming, di dati grezzi o trasformati. Una caratteristica importante dei data lake è l’utilizzo di storage a basso costo e affidabile. È possibile conservare i dati in un formato di file generico come JSON e CSV e open-source come, ad esempio, Parquet; questo agevola elaborazioni tra diversi sistemi. Essendo un unico repository centralizzata per tutti i dati aziendali rende la governance molto più semplice. Altro aspetto da evidenziare è che in quanto data lake utilizza uno storage economico, ci si può permettere di archiviare i dati in formato grezzo senza elaborarli prima oppure archiviare dati per i quali non sono ancora stati definiti i casi d’uso per i quali ma non vogliamo scartarli per non precluderci utilizzi futuri.
Il data lake presenta anche dei limiti:
- i dati sono in formato grezzo quindi non direttamente utilizzabili per attività di business intelligence e di analisi dati;
- la gestione della sua organizzazione può risultare complesse da configurare e gestire e, nel complesso, non offrono grandi prestazioni a causa del tipo di archiviazione e dei formati utilizzati; questo che può rendere i dati non intuitivi da utilizzare.
- Altro aspetto importante nel data lake è che non supportano le proprietà ACID, atomicità, consistenza, isolamento e durabilità così come non è nativamente possibile operazioni transazionale del dato; tutte operazioni invece tipiche di un database relazionale.
Insomma, senza le dovute competenze ed esperienze il data lake può trasformarsi in palude di dati inaffidabili.
Data Lake Vs. Data Warehouse
A questo punto, se cercassimo di tirare le somme i due approcci hanno dei limiti intersechi che sono all’opposto i vantaggi dell’altro; quindi, un approccio potrebbe essere prendere il meglio dei due “mondi”: la flessibilità e l’affidabilità di un data lake e la struttura, il versioning e le ottimizzazioni di un data warehouse. Questo, in sintesi, porta ad un’architettura a 2 livelli dove il dato grezzo è memorizzato nel data lake, mediante operazioni di trasformazione e validazione per certificarlo, viene poi archiviato nel data warehouse. Ma questa architettura a due livelli non è priva di punti di attenzione.
Uno dei principali è che comunque presente un data warehouse con il suo storage dedicato che ha un costo di storage più elevato che si aggiunge a quello del Data Lake sicuramente molto meno costoso. A questo dobbiamo aggiungere che elaborazioni di machine learning e approfondimento del dato che prevede un dettaglio maggiore non è praticabile attraverso il Data Warehouse; questo porta ad avere approcci diversi con strumenti diversi non soddisfabili da un’unica piattaforma.
La piattaforma Data Lakehouse Navigare in nuove acque
I punti di attenzione esposti sopra, senza entrare nel dettaglio di altro, ha portato a pensare ad una nuova architettura unica: il data lakehouse.
L’obbiettivo del data lakehouse è combinare la flessibilità, l’efficienza dei costi e la scalabilità del data lake con le proprietà di un data warehouse, ovvero la gestione dei dati strutturata e le transazioni tipiche di un database transazionale; il tutto utilizzando un’unica architettura per offrire la flessibilità e i costi contenuti di un data lake, ma allo stesso tempo le prestazioni e l’affidabilità di un data warehouse separando motore di calcolo e storage.
La combinazione del meglio di entrambi i mondi in un’unica architettura consente alle organizzazioni di eseguire business intelligence e machine learning e altri processi come streaming su tutti i dati in loro possesso con un’unica piattaforma. Inoltre, essendo in architettura open, è integrata in servizi cloud diversi come Databricks e Synapse.