Che cos'è Delta Live Tables?

Delta Live Tables è 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 altre informazioni, contattare il team dell'account Databricks.

Invece di definire le pipeline di dati usando una serie di attività apache Spark separate, è possibile definire tabelle di streaming e viste materializzate che il sistema deve creare e mantenere aggiornato. 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 origini dati con aggiornamenti, eliminazioni o aggregazioni e per l'elaborazione di Change Data Capture (CDC).
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 con ogni aggiornamento. Le tabelle di streaming sono progettate per le origini dati che sono di sola 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 (o tabella dinamica) è una vista 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. Vedere 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:

  1. Configurazioni che definiscono una raccolta di notebook o file (noti come codice sorgente o librerie) che usano la sintassi Delta Live Tables per dichiarare i set di dati.
  2. 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 Gestire la configurazione delle 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 le tabelle live Delta.

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 Che 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 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 solo colonne Identity con tabelle di streaming in tabelle live Delta. Vedere Usare le colonne Identity in Delta Lake.
  • Un'area di lavoro di Azure Databricks è limitata a 100 aggiornamenti simultanei della pipeline.

Risorse aggiuntive