Data lakehouse
Che cos'è un lakehouse?
Il data lakehouse è una nuova architettura aperta per la gestione dei dati che unisce la flessibilità, l'economicità e la scalabilità dei data lake alle funzionalità di gestione dei dati e alle transazioni ACID dei data warehouse, per realizzare attività di business intelligence (BI) e machine learning (ML) su tutti i dati.
Data lakehouse: semplicità, flessibilità e costi ridotti
I data lakehouse introducono un nuovo concetto di sistema aperto: implementare strutture e funzionalità per la gestione dei dati simili a quelle di un data warehouse direttamente su un sistema di stoccaggio dei dati analogo a quello dei data lake. Fondendo queste due tecnologie in un unico sistema, i team di gestione dei dati possono agire più velocemente, in quanto possono utilizzare i dati senza bisogno di accedere a diversi sistemi. Inoltre, i data lakehouse fanno sì che i team abbiano sempre a disposizione i dati più completi e aggiornati per progetti di data science, machine learning e business analytics.
Le tecnologie abilitanti del data lakehouse
Il data lakehouse poggia su alcune tecnologie chiave:
- livelli di metadati per data lake;
- motori di query di nuova concezione per seguire interrogazioni SQL ad alte prestazioni su data lake;
- accesso ottimizzato per strumenti di data science e machine learning.
I livelli di metadati, come Delta Lake open-source, si innestano su formati di file aperti (ad es. file Parquet) e tracciano quali file fanno parte delle diverse versioni della tabella, per offrire ricche funzionalità di gestione come transazioni conformi ad ACID. I livelli di metadati abilitano altre funzionalità comuni dei data lakehouse, come supporto per streaming I/O (che elimina la necessità di bus di messaggi come Kafka), viaggi nel tempo a versioni precedenti della tabella, applicazione ed evoluzione di schemi, e convalida dei dati. Le prestazioni sono fondamentali affinché i data lakehouse diventino l'architettura dati predominante nelle aziende moderne, poiché è una delle ragioni principali per cui esistono i data warehouse nell'architettura a due livelli. Mentre i data lake con archivi di oggetti a basso costo avevano un accesso lento in passato, i motori di query di nuova concezione consentono analisi SQL ad alte prestazioni. Queste ottimizzazioni comprendono memorizzazione in cache di dati "caldi" in RAM/SSD (possibilmente transcodificati in formati più efficienti), ottimizzazione del layout dei dati per creare cluster di dati ad accesso congiunto, strutture di dati ausiliari come statistiche e indici, ed esecuzione vettorizzata su CPU moderne. La combinazione di queste tecnologie consente ai data lakehouse di raggiungere prestazioni su grandi set di dati che competono con i data warehouse, secondo i test comparativi TPC-DS. Grazie ai formati di dati aperti utilizzati dai data lakehouse (come Parquet), diventa molto facile per data scientist e tecnici di machine learning accedere ai dati nel lakehouse. A tale scopo possono utilizzare strumenti molto diffusi nell'ecosistema DS/ML come pandas, TensorFlow, PyTorch e altri che possono accedere a sorgenti come Parquet e ORC. Spark DataFrames mette inoltre a disposizione interfacce dichiarative per questi formati aperti che consentono un'ulteriore ottimizzazione degli I/O. Le altre funzionalità del data lakehouse, come storico delle revisioni e viaggi nel tempo, contribuiscono ulteriormente a migliorare la riproducibilità nel machine learning. Per approfondire gli sviluppi tecnologici che stanno guidando la transizione verso il data lakehouse, consigliamo la lettura del documento di CIDR Lakehouse: A New Generation of Open Platforms that Unify Data Warehousing and Advanced Analytics e dello studio universitario Delta Lake: High-Performance ACID Table Storage over Cloud Object Stores.
Storia delle architetture di dati
Nozioni generali sui data warehouse
I data warehouse vantano una lunga storia nelle applicazioni di supporto alle decisioni e di business intelligence, nonostante fossero inadatti o molto costosi per gestire dati non strutturati e semi-strutturati o dati con varietà, velocità e volumi elevati.
L'avvento dei data lake
Sono quindi nati i data lake per gestire dati grezzi in svariati formati su sistemi di storage a basso costo per attività di data science e machine learning, ma non avevano le funzionalità critiche dei data warehouse: non supportano transazioni, non assicurano la qualità dei dati e, inoltre, la mancanza di coerenza/isolamento rende pressoché impossibile mischiare scritture e letture, lavori in batch e in streaming.
Architettura di dati a due livelli
I team di gestione dei dati "cuciono" quindi insieme questi sistemi per fare attività di BI e ML sui dati conservati in entrambi i sistemi, con conseguenti problemi di duplicazione dei dati, costi extra per l'infrastruttura, sicurezza e costi di gestione rilevanti. In un'architettura a due livelli, i dati vengono trasferiti con un procedimento ETL dai database operativi a un data lake. Il lake conserva i dati di tutta l'impresa in un archivio di oggetti a basso costo e in un formato compatibile con i comuni strumenti di machine learning, ma spesso non è organizzato e mantenuto in modo adeguato. Successivamente, una piccola frazione dei dati business-critical viene nuovamente elaborata con un processo ETL per essere caricata nel data warehouse a scopo di business intelligence e analisi dei dati. A causa dei molteplici passaggi ETL, questa architettura a due livelli richiede una manutenzione continua e spesso genera dati "stantii", fonte di preoccupazione per analisti e data scientist secondo recenti sondaggi di Kaggle e Fivetran. Approfondisci i problemi più comuni dell'architettura a due livelli.
Risorse aggiuntive
- Che cos'è un lakehouse? - Blog
- Architettura lakehouse: da visione a realtà
- Introduzione a lakehouse e analisi SQL
- Lakehouse: una nuova generazione di piattaforme aperte che unifica data warehouse e analisi avanzata
- Delta Lake: la tecnologia alla base del lakehouse
- Databricks Lakehouse Platform
- Data Brew Vidcast: Stagione 1 sui data lakehouse
- L'ascesa del paradigma Lakehouse
- Building the Data Lakehouse di Bill Inmon
- La piattaforma data lakehouse per principianti