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 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.
- Tabelle live delta:
- COPY INTO
- Autoloader
- Aggiungere l'interfaccia utente dei dati
- Convertire in modo incrementale i dati Parquet o Iceberg in Delta Lake
- Conversione monouso dei dati Parquet o Iceberg in Delta Lake
- Partner di terze parti
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.
- Delta Lake supporta upserts usando l'operazione di merge. Vedere Upsert in una tabella Delta Lake tramite merge.
- Delta Lake offre numerose opzioni per sovrascrivere selettive in base a filtri e partizioni. Vedere Sovrascrivere i dati in modo selettivo con Delta Lake.
- È possibile aggiornare manualmente o automaticamente lo schema della tabella senza riscrivere i dati. Vedere Aggiornare lo schema della tabella Delta Lake.
- Abilitare il mapping delle colonne per rinominare o eliminare colonne senza riscrivere i dati. Si veda Rinominare ed eliminare le colonne con mapping di colonne Delta Lake.
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.
- Letture e scritture di streaming di tabelle delta
- Usare il feed di dati delle modifiche delta Lake in Azure Databricks
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.
- Imposizione dello schema
- Vincoli in Azure Databricks
- Colonne generate da Delta Lake
- Arricchire le tabelle Delta Lake con metadati personalizzati
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.
- Usare il clustering liquido per le tabelle Delta
- Ignora dati per Delta Lake
- Ottimizzare il layout del file di dati
- Rimuovere i file di dati inutilizzati con vuoto
- Configurare Delta Lake per controllare le dimensioni dei file di dati
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.
- Esaminare i dettagli della tabella Delta Lake con i dettagli
- Informazioni di riferimento sulle proprietà della tabella Delta
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 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.