Condividi tramite


Che cos'è Delta Live Tables?

Nota

Delta Live Tables richiede il piano Premium. Per maggiori informazioni, contattare il team dell'account Databricks.

Delta Live Tables è un framework dichiarativo progettato per semplificare la creazione di pipeline di estrazione, trasformazione e caricamento affidabili e gestibili. Si specificano i dati da inserire e come trasformarli e Delta Live Tables automatizza gli aspetti chiave della gestione della pipeline di dati, tra cui orchestrazione, gestione del calcolo, monitoraggio, applicazione della qualità dei dati e gestione degli errori.

Delta Live Tables è basato su Apache Spark, ma invece di definire le pipeline di dati usando una serie di attività Apache Spark separate, si definiscono tables di streaming e materializzate views che il sistema deve creare e le query necessarie per popolare e update tali tables di streaming e materializzati views.

Per altre informazioni sui vantaggi della creazione e dell'esecuzione delle pipeline ETL con Delta Live Tables, vedere la pagina del prodotto Tables Delta Live Tables.

Vantaggi dei Tables Delta Live rispetto ad Apache Spark

Apache Spark è un motore di analisi unificata open source versatile, incluso ETL. Delta Live Tables si basa su Spark per gestire attività di elaborazione ETL specifiche e comuni. Delta Live Tables può accelerare significativamente il percorso di produzione quando i requisiti includono queste attività di elaborazione, tra cui:

  • Acquisizione di dati da fonti tipiche.
  • Trasformazione incrementale dei dati.
  • Eseguendo il Change Data Capture (CDC).

Tuttavia, delta Live Tables non è adatto per l'implementazione di alcuni tipi di logica procedurale. Ad esempio, i requisiti di elaborazione, ad esempio la scrittura in un table esterno o l'inclusione di un'istruzione condizionale che opera su un'archiviazione file esterna o un database tables non possono essere eseguiti all'interno del codice che definisce un set di dati Delta Live Tables. Per implementare l'elaborazione non supportata da Delta Live Tables, Databricks consiglia di usare Apache Spark o includere la pipeline in un processo di Databricks che esegue l'elaborazione in un'attività di processo separata. Vedere 'attività pipeline Tables Delta Live per i processi.

Il seguente table confronta Delta Live Tables con Apache Spark:

Capacità Delta Live Tables Apache Spark
Trasformazioni dei dati È possibile trasformare i dati usando SQL o Python. È possibile trasformare i dati usando SQL, Python, Scala o R.
Elaborazione incrementale dei dati Molte trasformazioni dei dati vengono elaborate automaticamente in modo incrementale. È necessario determinare quali dati sono nuovi in modo da poterli elaborare in modo incrementale.
Orchestrazione Le trasformazioni vengono orchestrate automaticamente nell'ordine corretto. È necessario assicurarsi che le diverse trasformazioni vengano eseguite nell'ordine corretto.
Parallelismo Tutte le trasformazioni vengono eseguite con il livello di parallelismo corretto. È necessario usare thread o un agente di orchestrazione esterno per eseguire trasformazioni non correlate in parallelo.
Gestione degli errori Gli errori vengono ritentati automaticamente. È necessario decidere come gestire gli errori e i ritentativi.
Monitoraggio Le metriche e gli eventi vengono registrati automaticamente. È necessario scrivere codice per raccogliere le metriche relative all'esecuzione o alla qualità dei dati.

concetti chiave di Delta Live Tables

La figura seguente illustra i componenti importanti di una pipeline Delta Live Tables, seguita da una spiegazione di ciascuno.

concetti chiave di Delta Live Tables.

streaming table

Un table di streaming è un table Delta con uno o più flussi che lo scrivono. I tables di streaming vengono comunemente usati per l'inserimento perché elaborano i dati di input una sola volta e possono elaborare grandi volumes di dati di solo accodamento. I tables di streaming sono utili anche per la trasformazione a bassa latenza di flussi di dati con volumi elevati.

Vista materializzata

Una vista materializzata è una vista che contiene record precalcolati in base alla query che definisce la vista materializzata. I record nella vista materializzata vengono aggiornati automaticamente da Delta Live Tables in base alla programmazione update o ai trigger della pipeline. Ogni volta che una vista materializzata viene aggiornata, è garantito che abbia gli stessi risultati dell'esecuzione della query di definizione sui dati più recenti disponibili. Tuttavia, questa operazione viene spesso eseguita senza ricompilare il risultato completo da zero, usando incrementale refresh. Le views materializzate vengono comunemente usate per le trasformazioni.

Views

Tutti i risultati del calcolo views in Azure Databricks provengono dai set di dati di origine man mano che vengono effettuate le query, sfruttando le ottimizzazioni della cache quando disponibili. Delta Live Tables non pubblica views nel catalog, quindi views possono essere referenziati solo nella pipeline in cui sono definiti. Views sono utili come query intermedie che non devono essere esposte a utenti o sistemi finali. Databricks consiglia di utilizzare views per far rispettare i vincoli di qualità dei dati o per trasformare e arricchire i dataset che guidano più query a valle.

Oleodotto

Una pipeline è una raccolta di flussi tables e di materiali views che vengono aggiornati insieme. I flussi di streaming tables e i dati materializzati views vengono dichiarati nei file di origine Python o SQL. Una pipeline include anche una configurazione che definisce il calcolo usato per update il flusso tables e materializzato views durante l'esecuzione della pipeline. Analogamente al modo in cui un modello Terraform definisce l'infrastruttura nell'account cloud, una pipeline Delta Live Tables definisce i dataset e le trasformazioni per l'elaborazione dei dati.

Come si elaborano i dati dei set di dati delta Live Tables?

Nell'table seguente viene descritto come viewsvenga materializzato, come tablesvenga trasmesso in streaming e come views elabori i dati:

Tipo di set di dati Come vengono elaborati i record tramite query definite?
Streaming table Ogni record viene elaborato esattamente una volta. Si presuppone un'origine di sola accodamento.
Vista materializzata I record vengono elaborati in base alle esigenze per restituire risultati accurati per lo stato dei dati corrente. Il views materializzato dovrebbe essere utilizzato per le attività di elaborazione dei dati, come trasformazioni, aggregazioni o pre-elaborazione di query complesse e lente e calcoli frequentemente utilizzati.
Visualizza I record vengono elaborati ogni volta che viene eseguita una query sulla vista. Usare views per trasformazioni intermedie e controlli di qualità dei dati che non devono essere pubblicati nei set di dati pubblici.

Definisci i tuoi primi set di dati in Delta Live Tables

Delta Live Tables introduce una nuova sintassi per Python e SQL. Per informazioni sulle nozioni di base della sintassi della pipeline, vedere Sviluppare codice pipeline con Python e Sviluppare codice della pipeline con SQL.

Nota

Delta Live Tables separa le definizioni dei set di dati dall'elaborazione di update e i notebook delta Live Tables non sono destinati all'esecuzione interattiva.

Come si configurano le pipeline di Tables Delta Live?

Le impostazioni per le pipeline Delta Live Tables rientrano in due categorie principali:

  1. Configurazioni che definiscono una raccolta di notebook o file (noti come codice sorgente ) 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, come vengono elaborati gli aggiornamenti e come vengono salvati i tables 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 un di destinazione schema per pubblicare nel metastore Hive o un di destinazione catalog e un di destinazione schema per pubblicare in Unity Catalog.
  • Le autorizzazioni di accesso ai dati vengono configurate tramite il cluster usato per l'esecuzione. Verificare 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 riferimento al linguaggio SQL Tables Delta LiveTables e Informazioni di riferimento sul linguaggio Python Delta Live.

Per ulteriori informazioni sulle impostazioni e configurazioni della pipeline, vedere Configurare una pipeline Delta Live Tables.

Distribuire la prima pipeline e attivare gli aggiornamenti

Prima di elaborare i dati con Delta Live Tables, è necessario configurare una pipeline. Dopo aver configurato una pipeline, è possibile attivare un update per calcolare i risultati per ogni set di dati nella pipeline. Per get ha iniziato a usare le pipeline Delta Live Tables, vedere il tutorial: Esegui il tuo primo pipeline Delta Live Tables.

Che cos'è una pipeline update?

Le pipeline distribuiscono l'infrastruttura e ricompilano lo stato dei dati quando si avvia un update. Un update esegue le operazioni seguenti:

  • Avvia un cluster con la configurazione corretta.
  • Individua tutti i tables e views definiti e controlla eventuali errori di analisi, ad esempio nomi di column non validi, dipendenze mancanti ed errori di sintassi.
  • Crea o aggiorna tables e views 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 update in una pipeline di Tables Delta Live.

inserire dati con delta live Tables

Delta Live Tables supporta tutte le origini dati disponibili in Azure Databricks.

Databricks consiglia di utilizzare lo streaming tables per la maggior parte dei casi d'uso di ingestione. Per i file in arrivo nell'archiviazione di oggetti cloud, Databricks consiglia il caricatore automatico. È possibile inserire direttamente i dati con Delta Live Tables 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. Vedi Carica dati con Delta Live Tables.

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 CHECKconstraint in un database tradizionale che impedisce l'aggiunta di record che non soddisfano il constraint, 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. Consultare Gestire la qualità dei dati con le aspettative delle pipeline.

Delta Live Tables estende le funzionalità di Delta Lake. Poiché tables creati e gestiti da Delta Live Tables sono dei Delta tables, hanno le stesse garanzie e funzionalità offerte da Delta Lake. Vedere Cos'è Delta Lake?.

In Delta Lake, Delta Live Tables aggiunge diverse proprietà table oltre alle numerose proprietà table che possono essere set. Vedere riferimento alle proprietà di Delta Live Tables e riferimento alle proprietà di Delta table.

Come vengono creati e gestiti tables da Delta Live Tables

Azure Databricks gestisce automaticamente tables creati con Delta Live Tables, determinando come è necessario elaborare gli aggiornamenti per calcolare correttamente lo stato corrente di un table ed eseguire numerose attività di manutenzione e ottimizzazione.

Per la maggior parte delle operazioni, è consigliabile consentire a Delta Live Tables di elaborare tutti gli aggiornamenti, gli inserimenti e le eliminazioni per un tabledi destinazione. Per informazioni dettagliate e limitazioni, vedere Conservare le eliminazioni manuali o gli aggiornamenti.

Attività di manutenzione eseguite da Delta Live Tables

Delta Live Tables esegue attività di manutenzione entro 24 ore dall'aggiornamento di un table. La manutenzione può migliorare le prestazioni delle query e ridurre i costi rimuovendo le versioni precedenti di tables. Per impostazione predefinita, il sistema esegue prima un'operazione completa di OPTIMIZE, seguita da VACUUM. È possibile disabilitare OPTIMIZE per un table impostando pipelines.autoOptimize.managed = false nelle proprietà table per l'table. Le attività di manutenzione vengono eseguite solo se una pipeline update è stata eseguita nelle 24 ore prima della pianificazione delle attività di manutenzione.

Limiti

Per un list di limitazioni, vedere Limitazioni Tables Delta Live.

Per un list di requisiti e limitazioni specifici per l'uso di Delta Live Tables con Unity Catalog, vedere Catalog di Delta Live Tables

Risorse aggiuntive