Perché Delta Lake?

Delta Lake è il livello di archiviazione ottimizzato che fornisce le basi per le tabelle in un lakehouse in 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 di archiviazione predefinito per tutte le operazioni in Azure Databricks. Se non diversamente specificato, tutte le tabelle in Azure Databricks sono tabelle Delta. 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

Tutte le tabelle in Azure Databricks sono tabelle Delta per impostazione predefinita. 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 ottenere esempi di operazioni Delta Lake di base, ad esempio la creazione di tabelle, la lettura, la scrittura e l'aggiornamento dei dati, vedere Esercitazione: Delta Lake.

Databricks offre molte raccomandazioni per le procedure consigliate per Delta Lake.

Conversione e inserimento di dati in Delta Lake

Azure Databricks offre numerosi prodotti per accelerare e semplificare il caricamento dei dati nel lakehouse.

Per un elenco completo delle opzioni di inserimento, vedere Inserire dati in un databricks lakehouse.

Aggiornamento e modifica delle tabelle Delta Lake

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

Carichi di lavoro incrementali e di streaming in Delta Lake

Delta Lake è ottimizzato per lo streaming strutturato in Azure Databricks. Le tabelle live delta estendono le funzionalità native con la distribuzione semplificata dell'infrastruttura, il ridimensionamento avanzato e le dipendenze dei dati gestiti.

Esecuzione di una query nelle versioni precedenti di una tabella

Ogni scrittura in una tabella Delta 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 Delta Lake.

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.

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.

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 per individuare le opzioni configurate.

Pipeline di dati che usano Delta Lake e delta live tables

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 tabelle live delta 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 How does Azure Databricks manage Delta Lake feature compatibility?.

Documentazione dell'API Delta Lake

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

Per le istruzioni SQL spefic 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.