Che cos'è Delta Lake in Azure Databricks?

Delta Lake è il livello di archiviazione ottimizzato che serve come base per le tabelle in un lakehouse di Databricks. Delta Lake è un software open source che estende i file di dati Parquet con un log delle transazioni basato su file per le transazioni ACID e la gestione scalabile dei metadati . Delta Lake è completamente compatibile con le API Apache Spark ed è stato sviluppato per una stretta integrazione con Structured Streaming, consentendo di usare facilmente una singola copia di dati per operazioni batch e di streaming e fornendo l'elaborazione incrementale su larga scala.

Delta Lake è il formato predefinito per tutte le operazioni in Azure Databricks. Se non diversamente specificato, tutte le tabelle in Azure Databricks sono tabelle Delta Lake. Databricks ha originariamente sviluppato il protocollo Delta Lake e continua a contribuire attivamente al progetto open source. Molte delle ottimizzazioni e dei prodotti nella piattaforma Databricks si basano sulle garanzie fornite da Apache Spark e Delta Lake. Per informazioni sulle ottimizzazioni in Azure Databricks, vedere Raccomandazioni sull'ottimizzazione in Azure Databricks.

Per informazioni di riferimento sui comandi di Delta Lake SQL, vedere Istruzioni Delta Lake.

Il log delle transazioni Delta Lake ha un protocollo aperto ben definito che può essere usato da qualsiasi sistema per leggere il log. Vedere Protocollo del log delle transazioni delta.

Introduzione a Delta Lake

Per impostazione predefinita, tutte le tabelle in Azure Databricks sono tabelle Delta Lake. Indipendentemente dal fatto che si usino dataframe Apache Spark o SQL, si ottengono tutti i vantaggi di Delta Lake salvando i dati nel lakehouse con le impostazioni predefinite.

Per esempi di operazioni Delta Lake di base, ad esempio la creazione di tabelle, la lettura, la scrittura e l'aggiornamento dei dati, vedere Esercitazione: Creare e gestire tabelle Delta Lake.

Per consigli e procedure consigliate su Databricks sull'uso di Delta Lake, vedere Procedure consigliate: Delta Lake.

Conversione e inserimento di dati in Delta Lake

Azure Databricks offre molte funzionalità per accelerare e semplificare il caricamento dei dati nel lakehouse.

Metodo Descrzione
Tutorial: Creazione di una pipeline ETL con Lakeflow pipelines Crea una pipeline ETL completa con le pipeline Lakeflow.
Configurare l'inserimento incrementale da Azure Data Lake Storage Configurare l'acquisizione incrementale dall'archiviazione cloud usando Auto Loader e le pipeline di Lakeflow.
tabelle di streaming Usare le tabelle di streaming per l'acquisizione solo in append e lo streaming a bassa latenza nelle pipeline Lakeflow.
Introduzione all'uso di COPY INTO per caricare i dati Carica i dati in modo incrementale e idempotente da un archivio cloud tramite SQL.
Che cos'è il caricatore automatico? Inserire i file dall'archiviazione cloud in modo incrementale man mano che arrivano.
Creare o modificare una tabella usando il caricamento di file Caricare file e creare tabelle dall'interfaccia utente Azure Databricks.
Clonazione incrementale di tabelle Parquet e Apache Iceberg in Delta Lake Clonare in modo incrementale le tabelle Parquet o Apache Iceberg in Delta Lake.
Converti in Delta Lake Conversione una tantum delle tabelle Parquet o Apache Iceberg in Delta Lake.
Partner tecnologici Connettere partner e strumenti di terze parti alla Azure Databricks lakehouse.

Per un elenco completo delle opzioni di inserimento, vedere Connettori Standard in Lakeflow Connect.

Aggiornamento e modifica delle tabelle Delta Lake

Le transazioni atomiche con Delta Lake consentono di usare molte opzioni per l'aggiornamento di dati e metadati. Per evitare di danneggiare le tabelle, Databricks consiglia di evitare di interagire direttamente con i file di dati e di log delle transazioni nelle directory dei file Delta Lake.

Operation Descrzione
Eseguire l'upsert in una tabella di Delta Lake usando MERGE Esegui l'upsert dei dati in una tabella Delta Lake mediante l'operazione MERGE.
Sovrascrivere in modo selettivo i dati con Delta Lake Sovrascrivere subset di dati in base a filtri e partizioni.
Aggiornare gli schemi di tabella con l'evoluzione dello schema Aggiornare manualmente o automaticamente lo schema della tabella senza riscrivere i dati.
Rinominare e rimuovere colonne con il mapping di colonne in Delta Lake Rinominare o eliminare colonne senza riscrivere i dati.

Carichi di lavoro incrementali e di streaming in Delta Lake

Delta Lake è ottimizzato per lo streaming strutturato in Azure Databricks. Le pipeline di Lakeflow estendono le funzionalità predefinite con la distribuzione semplificata dell'infrastruttura, il ridimensionamento avanzato e le dipendenze dei dati gestite.

Feature Descrzione
Letture e scritture in streaming delle tabelle Delta Lake Usa le tabelle Delta Lake come origini e destinazioni per Structured Streaming con readStream e writeStream.
Usare il feed delle modifiche dei dati in Azure Databricks Tenere traccia delle modifiche a livello di riga tra le versioni di una tabella Delta Lake o Apache Iceberg v3.

Esecuzione di query su versioni precedenti di una tabella

Ogni scrittura in una tabella Delta Lake crea una nuova versione della tabella. È possibile usare il log delle transazioni per esaminare le modifiche apportate alla tabella ed eseguire query sulle versioni precedenti della tabella. Vedere Usare la cronologia delle tabelle.

Miglioramenti dello schema Delta Lake

Delta Lake convalida lo schema in scrittura, assicurandosi che tutti i dati scritti in una tabella corrispondano ai requisiti impostati.

Feature Descrzione
implementazione dello schema Convalidare la qualità dei dati applicando lo schema in scrittura.
Vincoli su Azure Databricks Applicare vincoli di integrità applicati e chiave primaria informativa, chiave esterna e vincoli univoci.
colonne generate da Delta Lake Generare automaticamente valori di colonna usando le funzioni specificate dall'utente.
Arricchire le tabelle con metadati personalizzati Aggiungere commenti e metadati personalizzati a tabelle e colonne per arricchire l'individuazione dei dati.

Gestione di file e indicizzazione dei dati con Delta Lake

Azure Databricks imposta molti parametri predefiniti per Delta Lake che influiscono sulle dimensioni dei file di dati e sul numero di versioni di tabella mantenute nella cronologia. Delta Lake usa una combinazione di analisi dei metadati e layout di dati fisici per ridurre il numero di file analizzati per soddisfare qualsiasi query.

Feature Descrzione
Usare il clustering liquido per le tabelle Semplificare il layout dei dati e ottimizzare le prestazioni delle query senza partizionare usando il clustering liquido.
Saltare dati Ignorare i file irrilevanti in fase di query usando le statistiche delle colonne, l'ordine Z e il layout dei dati ottimizzato.
Ottimizzare il layout dei file di dati Compattare file di dati di piccole dimensioni per migliorare le prestazioni delle query.
Rimuovi i file di dati inutilizzati con vacuum Rimuovere i file di dati non aggiornati per ridurre i costi di archiviazione.
Eliminazione automatica delle righe con durata automatica Eliminare automaticamente le righe dalle tabelle gestite dopo un periodo di tempo configurabile.
Controllare le dimensioni del file di dati Controllare le dimensioni del file di destinazione manualmente o abilitare l'ottimizzazione automatica delle dimensioni dei file.

Configurazione e revisione delle impostazioni di Delta Lake

Azure Databricks archivia tutti i dati e i metadati per le tabelle Delta Lake nell'archiviazione di oggetti cloud. Molte configurazioni possono essere impostate a livello di tabella o all'interno della sessione Spark. È possibile esaminare i dettagli della tabella Delta Lake per individuare le opzioni configurate.

Feature Descrzione
Esaminare i dettagli della tabella con describe detail Visualizzare le configurazioni e i metadati della tabella usando il DESCRIBE DETAIL comando .
Informazioni di riferimento sulle proprietà della tabella Elenco di riferimento delle proprietà della tabella disponibili per le tabelle Delta Lake.

Pipeline di dati che usano pipeline Delta Lake e Lakeflow

Azure Databricks incoraggia gli utenti a sfruttare un'architettura medallion per elaborare i dati tramite una serie di tabelle man mano che i dati vengono puliti e arricchiti. Le pipeline di Lakeflow semplificano i carichi di lavoro ETL tramite l'esecuzione ottimizzata e la distribuzione e il ridimensionamento automatizzati dell'infrastruttura.

Compatibilità delle funzionalità delta Lake

Non tutte le funzionalità delta Lake si trovano in tutte le versioni di Databricks Runtime. Per informazioni sul controllo delle versioni di Delta Lake, vedere Compatibilità e protocolli delle funzionalità Delta Lake.

Documentazione dell'API Delta Lake

Per la maggior parte delle operazioni di lettura e scrittura nelle tabelle Delta Lake, è possibile usare LE API Spark SQL o Apache Spark DataFrame .

Per istruzioni SQL specifiche di Delta Lake, vedere Istruzioni Delta Lake.

Azure Databricks garantisce la compatibilità binaria con le API Delta Lake in Databricks Runtime. Per visualizzare la versione dell'API Delta Lake in pacchetto in ogni versione di Databricks Runtime, vedere la sezione Ambiente di sistema nell'articolo pertinente nelle note sulla versione di Databricks Runtime. Per la documentazione sulle API Delta Lake per Python, Scala e Java, vedere la documentazione di OSS Delta Lake.