Che cos'è Delta Live Tables?
Delta Live Tables forniscono un framework dichiarativo per la creazione di pipeline di elaborazione dati affidabili, gestibili e testabili. Le trasformazioni da eseguire sui dati e le tabelle live Delta consentono di gestire l'orchestrazione delle attività, la gestione dei cluster, il monitoraggio, la qualità dei dati e la gestione degli errori.
Nota
Le tabelle live delta richiedono il piano Premium. Per maggiori informazioni, contattare il team dell'account Databricks.
Invece di definire le pipeline di dati usando una serie di attività di Apache Spark separate, è possibile definire tabelle di streaming e viste materializzate che il sistema deve creare e mantenere aggiornate. Le tabelle live delta gestiscono la modalità di trasformazione dei dati in base alle query definite per ogni passaggio di elaborazione. È anche possibile applicare la qualità dei dati con le aspettative delle tabelle live Delta, che consentono di definire la qualità dei dati prevista e specificare come gestire i record che non soddisfano tali aspettative.
Per altre informazioni sui vantaggi della creazione e dell'esecuzione delle pipeline ETL con tabelle live Delta, vedere la pagina del prodotto Tabelle live Delta.
Che cosa sono i set di dati delta live tables?
I set di dati delle tabelle live delta sono le tabelle di streaming, le viste materializzate e le viste gestite come risultati delle query dichiarative. La tabella seguente descrive come viene elaborato ogni set di dati:
Tipo di set di dati | Come vengono elaborati i record tramite query definite? |
---|---|
Tabella di streaming | Ogni record viene elaborato esattamente una volta. Si presuppone un'origine di sola accodamento. |
Viste materializzate | I record vengono elaborati in base alle esigenze per restituire risultati accurati per lo stato dei dati corrente. Le viste materializzate devono essere usate per le attività di elaborazione dei dati, ad esempio trasformazioni, aggregazioni o pre-elaborazione di query lente e calcoli usati di frequente. |
Visualizzazioni | I record vengono elaborati ogni volta che viene eseguita una query sulla vista. Usare le viste per trasformazioni intermedie e controlli di qualità dei dati che non devono essere pubblicati nei set di dati pubblici. |
Le sezioni seguenti forniscono descrizioni più dettagliate di ogni tipo di set di dati. Per altre informazioni sulla selezione dei tipi di set di dati per implementare i requisiti di elaborazione dei dati, vedere Quando usare viste, viste materializzate e tabelle di streaming.
Tabella di streaming
Una tabella di streaming è una tabella Delta con supporto aggiuntivo per lo streaming o l'elaborazione incrementale dei dati. Le tabelle di streaming consentono di elaborare un set di dati in crescita, gestendo ogni riga una sola volta. Poiché la maggior parte dei set di dati aumenta continuamente nel tempo, le tabelle di streaming sono valide per la maggior parte dei carichi di lavoro di inserimento. Le tabelle di streaming sono ottimali per le pipeline che richiedono aggiornamento dei dati e bassa latenza. Le tabelle di streaming possono essere utili anche per le trasformazioni su larga scala, poiché i risultati possono essere calcolati in modo incrementale man mano che arrivano nuovi dati, mantenendo i risultati aggiornati senza dover ricompilare completamente tutti i dati di origine a ogni aggiornamento. Le tabelle di streaming sono progettate per le origini dati che sono solo di accodamento.
Nota
Anche se, per impostazione predefinita, le tabelle di streaming richiedono origini dati di sola accodamento, quando un'origine di streaming è un'altra tabella di streaming che richiede aggiornamenti o eliminazioni, è possibile eseguire l'override di questo comportamento con il flag skipChangeCommits.
Vista materializzata
Una vista materializzata è una visualizzazione in cui i risultati sono stati precompilate. Le viste materializzate vengono aggiornate in base alla pianificazione degli aggiornamenti della pipeline in cui sono contenuti. Le viste materializzate sono potenti perché possono gestire qualsiasi modifica nell'input. Ogni volta che gli aggiornamenti della pipeline, i risultati delle query vengono ricalcolati per riflettere le modifiche nei set di dati upstream che potrebbero essersi verificati a causa di conformità, correzioni, aggregazioni o CDC generale. Le tabelle live delta implementano viste materializzate come tabelle Delta, ma astraggono le complessità associate all'applicazione efficiente degli aggiornamenti, consentendo agli utenti di concentrarsi sulla scrittura di query.
Visualizzazioni
Tutte le viste in Azure Databricks calcolano i risultati dai set di dati di origine durante le query, sfruttando le ottimizzazioni di memorizzazione nella cache quando disponibili. Le tabelle live delta non pubblicano le viste nel catalogo, pertanto è possibile fare riferimento alle viste solo all'interno della pipeline in cui sono definite. Le viste sono utili come query intermedie che non devono essere esposte a utenti o sistemi finali. Databricks consiglia di usare le viste per applicare vincoli di qualità dei dati o trasformare e arricchire i set di dati che determinano più query downstream.
Dichiarare i primi set di dati nelle tabelle Live Delta
Delta Live Tables introduce una nuova sintassi per Python e SQL. Per iniziare a usare la sintassi delle tabelle live Delta, vedere gli esempi python e SQL in Esercitazione: Eseguire la prima pipeline di tabelle live Delta.
Nota
Le tabelle live delta separano le definizioni dei set di dati dall'elaborazione degli aggiornamenti e i notebook delta live tables non sono destinati all'esecuzione interattiva. Si veda Che cos'è una pipeline di tabelle live Delta?.
Che cos'è una pipeline di tabelle live Delta?
Una pipeline è l'unità principale usata per configurare ed eseguire flussi di lavoro di elaborazione dati con tabelle live Delta.
Una pipeline contiene viste materializzate e tabelle di streaming dichiarate nei file di origine Python o SQL. Delta Live Tables deduce le dipendenze tra queste tabelle, assicurandosi che gli aggiornamenti vengano eseguiti nell'ordine corretto. Per ogni set di dati, Le tabelle live Delta confrontano lo stato corrente con lo stato desiderato e procede alla creazione o all'aggiornamento dei set di dati usando metodi di elaborazione efficienti.
Le impostazioni delle pipeline di tabelle live delta rientrano in due categorie generali:
- Configurazioni che definiscono una raccolta di notebook o file (noti come codice sorgente) che usano la sintassi delle tabelle live Delta per dichiarare i set di dati.
- Configurazioni che controllano l'infrastruttura della pipeline, la gestione delle dipendenze, la modalità di elaborazione degli aggiornamenti e la modalità di salvataggio delle tabelle nell'area di lavoro.
La maggior parte delle configurazioni è facoltativa, ma alcune richiedono un'attenzione attenta, soprattutto quando si configurano pipeline di produzione. Di seguito sono elencate le quattro opzioni disponibili.
- Per rendere disponibili i dati all'esterno della pipeline, è necessario dichiarare uno schema di destinazione per la pubblicazione nel metastore Hive o in un catalogo di destinazione e uno schema di destinazione per la pubblicazione in Unity Catalog.
- Le autorizzazioni di accesso ai dati vengono configurate tramite il cluster usato per l'esecuzione. Assicurarsi che il cluster disponga delle autorizzazioni appropriate configurate per le origini dati e il percorso di archiviazione di destinazione, se specificato.
Per informazioni dettagliate sull'uso di Python e SQL per scrivere codice sorgente per le pipeline, vedere Informazioni di riferimento sul linguaggio SQL di Tabelle live Delta e Informazioni di riferimento sul linguaggio Python per le tabelle live delta.
Per altre informazioni sulle impostazioni e le configurazioni della pipeline, vedere Configurare una pipeline di tabelle live Delta.
Distribuire la prima pipeline e attivare gli aggiornamenti
Prima di elaborare i dati con tabelle live Delta, è necessario configurare una pipeline. Dopo aver configurato una pipeline, è possibile attivare un aggiornamento per calcolare i risultati per ogni set di dati nella pipeline. Per iniziare a usare le pipeline di tabelle live Delta, vedere Esercitazione: Eseguire la prima pipeline di tabelle live Delta.
Che cos'è un aggiornamento della pipeline?
Le pipeline distribuiscono l'infrastruttura e ricompilano lo stato dei dati all'avvio di un aggiornamento. Un aggiornamento esegue le operazioni seguenti:
- Avvia un cluster con la configurazione corretta.
- Individua tutte le tabelle e le viste definite e verifica la presenza di eventuali errori di analisi, ad esempio nomi di colonna non validi, dipendenze mancanti ed errori di sintassi.
- Crea o aggiorna tabelle e viste con i dati più recenti disponibili.
Le pipeline possono essere eseguite in modo continuo o in base a una pianificazione a seconda dei requisiti di costo e latenza del caso d'uso. Vedere Eseguire un aggiornamento in una pipeline di tabelle live Delta.
Inserire dati con tabelle live Delta
Le tabelle live delta supportano tutte le origini dati disponibili in Azure Databricks.
Databricks consiglia di usare le tabelle di streaming per la maggior parte dei casi d'uso di inserimento. Per i file in arrivo nell'archiviazione di oggetti cloud, Databricks consiglia il caricatore automatico. È possibile inserire direttamente dati con tabelle live Delta dalla maggior parte degli autobus di messaggi.
Per altre informazioni sulla configurazione dell'accesso all'archiviazione cloud, vedere Configurazione dell'archiviazione cloud.
Per i formati non supportati dal caricatore automatico, è possibile usare Python o SQL per eseguire query su qualsiasi formato supportato da Apache Spark. Vedere Caricare dati con tabelle live Delta.
Monitorare e applicare la qualità dei dati
È possibile usare le aspettative per specificare i controlli di qualità dei dati sul contenuto di un set di dati. A differenza di un CHECK
vincolo in un database tradizionale che impedisce l'aggiunta di record che non soddisfano il vincolo, le aspettative offrono flessibilità durante l'elaborazione dei dati che non soddisfano i requisiti di qualità dei dati. Questa flessibilità consente di elaborare e archiviare i dati che si prevede siano disordinati e che devono soddisfare requisiti di qualità rigorosi. Vedere Gestire la qualità dei dati con Delta Live Tables.
Come sono correlate le tabelle live Delta e Delta Lake?
Delta Live Tables estende la funzionalità di Delta Lake. Poiché le tabelle create e gestite da tabelle Delta Live sono tabelle Delta, hanno le stesse garanzie e funzionalità fornite da Delta Lake. Vedere Cos'è Delta Lake?.
Delta Live Tables aggiunge diverse proprietà di tabella oltre alle numerose proprietà della tabella che possono essere impostate in Delta Lake. Vedere Informazioni di riferimento sulle proprietà delle tabelle live Delta e informazioni di riferimento sulle proprietà della tabella Delta.
Modalità di creazione e gestione delle tabelle delta live
Azure Databricks gestisce automaticamente le tabelle create con le tabelle live Delta, determinando la modalità di elaborazione degli aggiornamenti per calcolare correttamente lo stato corrente di una tabella ed eseguendo diverse attività di manutenzione e ottimizzazione.
Per la maggior parte delle operazioni, è consigliabile consentire alle tabelle Live Delta di elaborare tutti gli aggiornamenti, gli inserimenti e le eliminazioni in una tabella di destinazione. Per informazioni dettagliate e limitazioni, vedere Conservare le eliminazioni manuali o gli aggiornamenti.
Attività di manutenzione eseguite da tabelle live Delta
Le tabelle live delta eseguono attività di manutenzione entro 24 ore dall'aggiornamento di una tabella. La manutenzione può migliorare le prestazioni delle query e ridurre i costi rimuovendo le versioni precedenti delle tabelle. Per impostazione predefinita, il sistema esegue un'operazione OPTIMIZE completa seguita da VACUUM. È possibile disabilitare OPTIMIZE per una tabella impostando pipelines.autoOptimize.managed = false
le proprietà della tabella per la tabella. Le attività di manutenzione vengono eseguite solo se un aggiornamento della pipeline è stato eseguito nelle 24 ore prima della pianificazione delle attività di manutenzione.
Limiti
Si applicano le limitazioni seguenti:
- Tutte le tabelle create e aggiornate da Tabelle Live Delta sono tabelle Delta.
- Le query relative ai viaggi temporali Delta Lake sono supportate solo con le tabelle di streaming e non sono supportate con viste materializzate. Vedere Usare la cronologia delle tabelle Delta Lake.
- Le tabelle live delta possono essere definite una sola volta, ovvero possono essere solo la destinazione di una singola operazione in tutte le pipeline di tabelle live Delta.
- Le colonne Identity non sono supportate con tabelle destinate a
APPLY CHANGES INTO
e potrebbero essere ricalcolate durante gli aggiornamenti per le viste materializzate. Per questo motivo, Databricks consiglia di usare le colonne Identity nelle tabelle Live Delta solo con tabelle di streaming. Vedere Usare le colonne Identity in Delta Lake. - Un'area di lavoro di Azure Databricks è limitata a 100 aggiornamenti simultanei della pipeline.
Per un elenco dei requisiti e delle limitazioni specifici per l'uso di tabelle Live Delta con il catalogo Unity, vedere Usare il catalogo Unity con le pipeline di tabelle live Delta
Risorse aggiuntive
- Le tabelle live delta supportano completamente l'API REST di Databricks. Vedere API DLT.
- Per le impostazioni della pipeline e della tabella, vedere Informazioni di riferimento sulle proprietà delle tabelle live delta.
- Informazioni di riferimento sul linguaggio SQL per le tabelle live delta.
- Informazioni di riferimento sul linguaggio Python per le tabelle live delta.