Informazioni su Delta Lake

Completato

Delta Lake è un livello di archiviazione open source che aggiunge la semantica dei database relazionali all'elaborazione dei data lake basata su Spark. Le tabelle nei lakehouse di Microsoft Fabric sono tabelle Delta, che sono rappresentate dall'icona delta triangolare (Δ) sulle tabelle nell'interfaccia utente lakehouse.

Screenshot della tabella salesorders visualizzata in Lakehouse Explorer in Microsoft Fabric.

Le tabelle Delta sono astrazioni dello schema sui file di dati archiviati in formato Delta. Per ogni tabella, lakehouse archivia una cartella contenente file di dati Parquet e una cartella _delta_Log in cui i dettagli delle transazioni vengono registrati in formato JSON.

Screenshot della visualizzazione dei file parquet nella tabella ordini di vendita, visualizzata tramite Lakehouse Explorer.

I vantaggi dell'uso delle tabelle Delta includono:

  • Tabelle relazionali che supportano l'esecuzione di query e la modifica dei dati. Con Apache Spark è possibile archiviare i dati in tabelle Delta che supportano operazioni CRUD (creazione, lettura, aggiornamento ed eliminazione). In altre parole, è possibile selezionare, inserire, aggiornare ed eliminare righe di dati nello stesso modo in cui si farebbe in un sistema di database relazionale.
  • Supporto per le transazioni ACID. I database relazionali sono progettati per supportare modifiche ai dati transazionali che forniscono atomicità (transazioni completate come singola unità di lavoro), coerenza (le transazioni lasciano il database in uno stato coerente), isolamento (le transazioni in-process non possono interferire tra loro) e durabilità (al termine di una transazione, le modifiche apportate vengono mantenute). Delta Lake offre questo stesso supporto transazionale a Spark implementando un log delle transazioni e applicando l'isolamento serializzabile per le operazioni simultanee.
  • Controllo delle versioni dei dati e spostamento del tempo. Poiché tutte le transazioni vengono registrate nel log delle transazioni, è possibile tenere traccia di più versioni di ogni riga della tabella e anche usare la funzionalità di spostamento del tempo per recuperare una versione precedente di una riga in una query.
  • Supporto per i dati batch e di streaming. Anche se la maggior parte dei database relazionali include tabelle che archiviano dati statici, Spark include il supporto nativo per lo streaming dei dati tramite l'API Spark Structured Streaming. Le tabelle Delta Lake possono essere usate sia come sink (destinazioni) che come origini per i dati di streaming.
  • Formati e interoperabilità standard. I dati sottostanti per le tabelle Delta vengono archiviati nel formato Parquet, comunemente usato nelle pipeline di inserimento di data lake. È anche possibile usare l'endpoint di Analisi SQL per il lakehouse di Microsoft Fabric per eseguire query sulle tabelle Delta in SQL.