Configurare le impostazioni della pipeline per le tabelle live Delta

Questo articolo fornisce informazioni dettagliate sulla configurazione delle impostazioni della pipeline per le tabelle live Delta. Le tabelle live delta forniscono un'interfaccia utente per la configurazione e la modifica delle impostazioni della pipeline. L'interfaccia utente offre anche un'opzione per visualizzare e modificare le impostazioni in JSON.

Nota

È possibile configurare la maggior parte delle impostazioni con l'interfaccia utente o una specifica JSON. Alcune opzioni avanzate sono disponibili solo usando la configurazione JSON.

Databricks consiglia di acquisire familiarità con le impostazioni delle tabelle live Delta usando l'interfaccia utente. Se necessario, è possibile modificare direttamente la configurazione JSON nell'area di lavoro. I file di configurazione JSON sono utili anche quando si distribuiscono pipeline in nuovi ambienti o quando si usa l'interfaccia della riga di comando o l'API REST.

Per un riferimento completo alle impostazioni di configurazione JSON delle tabelle live Delta, vedere Configurazioni della pipeline delle tabelle live delta.

Nota

Poiché le risorse di calcolo sono completamente gestite per le pipeline serverless, le impostazioni di calcolo come la scalabilità automatica avanzata, i criteri del cluster, i tipi di istanza e i tag del cluster non sono disponibili quando si seleziona Serverless (anteprima pubblica) per una pipeline.

È comunque possibile passare parametri di configurazione a una pipeline serverless, ma qualsiasi set di parametri in un clusters oggetto nella configurazione JSON viene ignorato.

Per informazioni sull'abilitazione delle pipeline DLT serverless, contattare il team dell'account di Azure Databricks.

Scegliere un'edizione del prodotto

Selezionare l'edizione del prodotto Delta Live Tables con le funzionalità più adatte ai requisiti della pipeline. Sono disponibili le seguenti edizioni di prodotto:

  • Core per eseguire carichi di lavoro di inserimento in streaming. Selezionare l'edizione se la Core pipeline non richiede funzionalità avanzate, ad esempio Change Data Capture (CDC) o Delta Live Tables.
  • Pro per eseguire carichi di lavoro di inserimento e CDC di streaming. L'edizione Pro del prodotto supporta tutte le Core funzionalità, oltre al supporto per i carichi di lavoro che richiedono l'aggiornamento delle tabelle in base alle modifiche apportate ai dati di origine.
  • Advanced per eseguire carichi di lavoro di inserimento di streaming, carichi di lavoro CDC e carichi di lavoro che richiedono aspettative. L'edizione Advanced del prodotto supporta le funzionalità delle Core edizioni e Pro e supporta anche l'applicazione dei vincoli di qualità dei dati con le aspettative delle tabelle live Delta.

È possibile selezionare l'edizione del prodotto quando si crea o si modifica una pipeline. È possibile selezionare un'edizione diversa per ogni pipeline. Vedere la pagina del prodotto Delta Live Tables.

Nota

Se la pipeline include funzionalità non supportate dall'edizione del prodotto selezionata, ad esempio, le aspettative, verrà visualizzato un messaggio di errore con il motivo dell'errore. È quindi possibile modificare la pipeline per selezionare l'edizione appropriata.

Scegliere una modalità pipeline

È possibile aggiornare la pipeline in modo continuo o con trigger manuali in base alla modalità pipeline. Vedere Esecuzione continua e attivata della pipeline.

Selezionare un criterio del cluster

Gli utenti devono disporre delle autorizzazioni necessarie per distribuire il calcolo per configurare e aggiornare le pipeline di tabelle live Delta. Gli amministratori dell'area di lavoro possono configurare i criteri del cluster per fornire agli utenti l'accesso alle risorse di calcolo per le tabelle live Delta. Vedere Definire i limiti per il calcolo della pipeline di tabelle live Delta.

Nota

  • I criteri del cluster sono facoltativi. Rivolgersi all'amministratore dell'area di lavoro se non sono necessari privilegi di calcolo per le tabelle Live Delta.

  • Per assicurarsi che i valori predefiniti dei criteri del cluster siano applicati correttamente, impostare il apply_policy_default_values valore su true nelle configurazioni del cluster nella configurazione della pipeline:

    {
      "clusters": [
        {
          "label": "default",
          "policy_id": "<policy-id>",
          "apply_policy_default_values": true
        }
      ]
    }
    

Configurare le librerie di codice sorgente

È possibile usare il selettore di file nell'interfaccia utente delle tabelle live delta per configurare il codice sorgente che definisce la pipeline. Il codice sorgente della pipeline è definito nei notebook di Databricks o negli script SQL o Python archiviati nei file dell'area di lavoro. Quando si crea o si modifica la pipeline, è possibile aggiungere uno o più notebook o file dell'area di lavoro o una combinazione di notebook e file dell'area di lavoro.

Poiché le tabelle live Delta analizzano automaticamente le dipendenze dei set di dati per costruire il grafico di elaborazione per la pipeline, è possibile aggiungere librerie di codice sorgente in qualsiasi ordine.

È anche possibile modificare il file JSON per includere il codice sorgente delle tabelle live Delta definite negli script SQL e Python archiviati nei file dell'area di lavoro. L'esempio seguente include notebook e file dell'area di lavoro:

{
  "name": "Example pipeline 3",
  "storage": "dbfs:/pipeline-examples/storage-location/example3",
  "libraries": [
    { "notebook": { "path": "/example-notebook_1" } },
    { "notebook": { "path": "/example-notebook_2" } },
    { "file": { "path": "/Workspace/Users/<user-name>@databricks.com/Apply_Changes_Into/apply_changes_into.sql" } },
    { "file": { "path": "/Workspace/Users/<user-name>@databricks.com/Apply_Changes_Into/apply_changes_into.py" } }
  ]
}

Specificare un percorso di archiviazione

È possibile specificare un percorso di archiviazione per una pipeline che pubblica nel metastore Hive. La motivazione principale per specificare una posizione consiste nel controllare la posizione di archiviazione degli oggetti per i dati scritti dalla pipeline.

Poiché tutte le tabelle, i dati, i checkpoint e i metadati per le pipeline di tabelle live Delta sono completamente gestite da tabelle live Delta, la maggior parte dell'interazione con i set di dati delle tabelle live delta avviene tramite tabelle registrate nel metastore Hive o nel catalogo Unity.

Specificare uno schema di destinazione per le tabelle di output della pipeline

Anche se facoltativo, è necessario specificare una destinazione per pubblicare tabelle create dalla pipeline ogni volta che si esula dallo sviluppo e dal test per una nuova pipeline. La pubblicazione di una pipeline in una destinazione rende disponibili set di dati per l'esecuzione di query altrove nell'ambiente Azure Databricks. Vedere Pubblicare dati da tabelle live Delta nel metastore Hive o Usare il catalogo Unity con le pipeline di tabelle live Delta.

Configurare le impostazioni di calcolo

Nota

Poiché le risorse di calcolo sono completamente gestite per le pipeline serverless, le impostazioni di calcolo non sono disponibili quando si seleziona Serverless (anteprima pubblica) per una pipeline.

Ogni pipeline di tabelle live delta ha due cluster associati:

  • Il updates cluster elabora gli aggiornamenti della pipeline.
  • Il maintenance cluster esegue attività di manutenzione giornaliere.

La configurazione usata da questi cluster è determinata dall'attributo clusters specificato nelle impostazioni della pipeline.

È possibile aggiungere impostazioni di calcolo applicabili solo a un tipo specifico di cluster usando le etichette del cluster. Per la configurazione dei cluster della pipeline è possibile usare tre etichette:

Nota

L'impostazione dell'etichetta del cluster può essere omessa se si definisce una sola configurazione del cluster. L'etichetta default viene applicata alle configurazioni del cluster se non viene fornita alcuna impostazione per l'etichetta. L'impostazione dell'etichetta del cluster è necessaria solo se è necessario personalizzare le impostazioni per tipi di cluster diversi.

  • L'etichetta default definisce le impostazioni di calcolo da applicare sia ai maintenanceupdates cluster che ai cluster. L'applicazione delle stesse impostazioni a entrambi i cluster migliora l'affidabilità delle esecuzioni di manutenzione assicurandosi che le configurazioni necessarie, ad esempio le credenziali di accesso ai dati per un percorso di archiviazione, vengano applicate al cluster di manutenzione.
  • L'etichetta maintenance definisce le impostazioni di calcolo da applicare solo al maintenance cluster. È anche possibile usare l'etichetta per eseguire l'override maintenance delle impostazioni configurate dall'etichetta default .
  • L'etichetta updates definisce le impostazioni da applicare solo al updates cluster. Usare l'etichetta updates per configurare le impostazioni che non devono essere applicate al maintenance cluster.

Impostazioni definiti usando le default etichette e updates vengono uniti per creare la configurazione finale per il updates cluster. Se la stessa impostazione viene definita usando entrambe default le etichette e updates , l'impostazione definita con l'etichetta updates sostituisce l'impostazione definita con l'etichetta default .

L'esempio seguente definisce un parametro di configurazione Spark aggiunto solo alla configurazione per il updates cluster:

{
  "clusters": [
    {
      "label": "default",
      "autoscale": {
        "min_workers": 1,
        "max_workers": 5,
        "mode": "ENHANCED"
      }
    },
    {
      "label": "updates",
      "spark_conf": {
         "key": "value"
      }
    }
  ]
}

Le tabelle live delta offrono opzioni simili per le impostazioni del cluster come altre risorse di calcolo in Azure Databricks. Analogamente ad altre impostazioni della pipeline, è possibile modificare la configurazione JSON per i cluster per specificare le opzioni non presenti nell'interfaccia utente. Vedere Calcolo.

Nota

  • Poiché il runtime delta live tables gestisce il ciclo di vita dei cluster della pipeline ed esegue una versione personalizzata di Databricks Runtime, non è possibile impostare manualmente alcune impostazioni del cluster in una configurazione della pipeline, ad esempio la versione di Spark o i nomi del cluster. Vedere Attributi del cluster che non sono impostabili dall'utente.
  • È possibile configurare pipeline di tabelle dinamiche Delta per sfruttare Photon. Vedi Che cos'è Photon?.

Selezionare i tipi di istanza per eseguire una pipeline

Per impostazione predefinita, Le tabelle live Delta selezionano i tipi di istanza per i nodi driver e di lavoro che eseguono la pipeline, ma è anche possibile configurare manualmente i tipi di istanza. Ad esempio, è possibile selezionare i tipi di istanza per migliorare le prestazioni della pipeline o risolvere i problemi di memoria durante l'esecuzione della pipeline. È possibile configurare i tipi di istanza quando si crea o si modifica una pipeline con l'API REST o nell'interfaccia utente di Tabelle live Delta.

Per configurare i tipi di istanza quando si crea o si modifica una pipeline nell'interfaccia utente di Tabelle live Delta:

  1. Fare clic sul pulsante Settings .
  2. Nella sezione Avanzate delle impostazioni della pipeline, nei menu a discesa Tipo di lavoro e Tipo di driver selezionare i tipi di istanza per la pipeline.

Per configurare i tipi di istanza nelle impostazioni JSON della pipeline, fare clic sul pulsante JSON e immettere le configurazioni del tipo di istanza nella configurazione del cluster:

Nota

Per evitare di assegnare risorse non necessarie al maintenance cluster, in questo esempio viene usata l'etichetta updates per impostare i tipi di istanza solo per il updates cluster. Per assegnare i tipi di istanza a entrambi updates i cluster e maintenance , usare l'etichetta default o omettere l'impostazione per l'etichetta. L'etichetta default viene applicata alle configurazioni del cluster della pipeline se non viene fornita alcuna impostazione per l'etichetta. Vedere Configurare le impostazioni di calcolo.

{
  "clusters": [
    {
      "label": "updates",
      "node_type_id": "Standard_D12_v2",
      "driver_node_type_id": "Standard_D3_v2",
      "..." : "..."
    }
  ]
}

Usare la scalabilità automatica per aumentare l'efficienza e ridurre l'utilizzo delle risorse

Usare la scalabilità automatica avanzata per ottimizzare l'utilizzo del cluster delle pipeline. La scalabilità automatica avanzata aggiunge risorse aggiuntive solo se il sistema determina che tali risorse aumentano la velocità di elaborazione della pipeline. Le risorse vengono liberate quando non sono più necessarie e i cluster vengono arrestati non appena vengono completati tutti gli aggiornamenti della pipeline.

Per altre informazioni sulla scalabilità automatica avanzata, inclusi i dettagli di configurazione, vedere Ottimizzare l'utilizzo del cluster delle pipeline di tabelle live Delta con scalabilità automatica avanzata.

Arresto ritardato del calcolo

Poiché un cluster Delta Live Table si arresta automaticamente quando non è in uso, se si fa riferimento a un criterio del cluster che imposta autotermination_minutes nella configurazione del cluster viene generato un errore. Per controllare il comportamento di arresto del cluster, è possibile usare la modalità di sviluppo o produzione o usare l'impostazione pipelines.clusterShutdown.delay nella configurazione della pipeline. Nell'esempio seguente il valore pipelines.clusterShutdown.delay viene impostato su 60 secondi:

{
    "configuration": {
      "pipelines.clusterShutdown.delay": "60s"
    }
}

Quando è abilitata la modalità production, il valore predefinito per pipelines.clusterShutdown.delay è 0 seconds. Quando è abilitata la modalità development, il valore predefinito è 2 hours.

Creare un cluster a nodo singolo

Se si imposta su num_workers 0 nelle impostazioni del cluster, il cluster viene creato come cluster a nodo singolo. Viene creato un cluster a nodo singolo anche se si configura un cluster con scalabilità automatica e se si impostano min_workers e max_workers su 0.

Se si configura un cluster di scalabilità automatica e si imposta solo min_workers su 0, il cluster non viene creato come cluster a nodo singolo. Il cluster ha sempre almeno un ruolo di lavoro attivo fino al completamento.

Di seguito è riportato un esempio di configurazione del cluster per creare un cluster a nodo singolo nelle Delta Live Table:

{
    "clusters": [
      {
        "num_workers": 0
      }
    ]
}

Configurare i tag del cluster

È possibile usare i tag di cluster per monitorare l'utilizzo dei cluster della pipeline. Aggiungere tag di cluster nell'interfaccia utente di Tabelle live Delta quando si crea o si modifica una pipeline oppure modificando le impostazioni JSON per i cluster della pipeline.

Configurazione dell'archiviazione cloud

Per accedere all'archiviazione di Azure, è necessario configurare i parametri obbligatori, inclusi i token di accesso, usando spark.conf le impostazioni nelle configurazioni del cluster. Per un esempio di configurazione dell'accesso a un account di archiviazione di Azure Data Lake Archiviazione Gen2 (ADLS Gen2), vedere Accedere in modo sicuro alle credenziali di archiviazione con segreti in una pipeline.

Parametrizzare le pipeline

Il codice Python e SQL che definisce i set di dati possono essere parametrizzati dalle impostazioni della pipeline. La parametrizzazione abilita i casi d'uso seguenti:

  • Separazione di percorsi lunghi e altre variabili dal codice.
  • Riduzione della quantità di dati elaborati in ambienti di sviluppo o staging per velocizzare i test.
  • Riutilizzo della stessa logica di trasformazione per l'elaborazione da più origini dati.

Nell'esempio seguente viene usato il startDate valore di configurazione per limitare la pipeline di sviluppo a un subset dei dati di input:

CREATE OR REFRESH LIVE TABLE customer_events
AS SELECT * FROM sourceTable WHERE date > '${mypipeline.startDate}';
@dlt.table
def customer_events():
  start_date = spark.conf.get("mypipeline.startDate")
  return read("sourceTable").where(col("date") > start_date)
{
  "name": "Data Ingest - DEV",
  "configuration": {
    "mypipeline.startDate": "2021-01-02"
  }
}
{
  "name": "Data Ingest - PROD",
  "configuration": {
    "mypipeline.startDate": "2010-01-02"
  }
}

Intervallo di trigger delle pipeline

È possibile usare pipelines.trigger.interval per controllare l'intervallo di trigger per un flusso che aggiorna una tabella o un'intera pipeline. Poiché una pipeline attivata elabora ogni tabella una sola volta, pipelines.trigger.interval viene usata solo con pipeline continue.

Databricks consiglia di impostare pipelines.trigger.interval su singole tabelle a causa di impostazioni predefinite diverse per lo streaming rispetto alle query batch. Impostare il valore in una pipeline solo quando l'elaborazione richiede il controllo degli aggiornamenti per l'intero grafico della pipeline.

È possibile impostare pipelines.trigger.interval in una tabella usando spark_conf Python o SET in SQL:

@dlt.table(
  spark_conf={"pipelines.trigger.interval" : "10 seconds"}
)
def <function-name>():
    return (<query>)
SET pipelines.trigger.interval=10 seconds;

CREATE OR REFRESH LIVE TABLE TABLE_NAME
AS SELECT ...

Per impostare pipelines.trigger.interval su una pipeline, aggiungerlo all'oggetto configuration nelle impostazioni della pipeline:

{
  "configuration": {
    "pipelines.trigger.interval": "10 seconds"
  }
}

Consentire agli utenti non amministratori di visualizzare i log dei driver da una pipeline abilitata per Il catalogo unity

Per impostazione predefinita, solo il proprietario della pipeline e gli amministratori dell'area di lavoro dispongono dell'autorizzazione per visualizzare i log del driver dal cluster che esegue una pipeline abilitata per Il catalogo Unity. È possibile abilitare l'accesso ai log dei driver per qualsiasi utente con autorizzazioni CAN MANAGE, CAN VIEW o CAN RUN aggiungendo il parametro di configurazione Spark seguente all'oggetto configuration nelle impostazioni della pipeline:

{
  "configuration": {
    "spark.databricks.acl.needAdminPermissionToViewLogs": "false"
  }
}

Aggiungere notifiche di posta elettronica per gli eventi della pipeline

È possibile configurare uno o più indirizzi di posta elettronica per ricevere notifiche quando si verifica quanto segue:

  • Un aggiornamento della pipeline viene completato correttamente.
  • Un aggiornamento della pipeline non riesce, con un errore riprovabile o non riprovabile. Selezionare questa opzione per ricevere una notifica per tutti gli errori della pipeline.
  • Un aggiornamento della pipeline ha esito negativo con un errore non irreversibile (irreversibile). Selezionare questa opzione per ricevere una notifica solo quando si verifica un errore non riprovabile.
  • Un singolo flusso di dati ha esito negativo.

Per configurare le notifiche tramite posta elettronica quando si crea o si modifica una pipeline:

  1. Fare clic su Aggiungi notifica.
  2. Immettere uno o più indirizzi di posta elettronica per ricevere notifiche.
  3. Fare clic sulla casella di controllo per ogni tipo di notifica da inviare agli indirizzi di posta elettronica configurati.
  4. Fare clic su Aggiungi notifica.

Controllare la gestione della rimozione definitiva per le query di tipo 1 di scD

È possibile usare le impostazioni seguenti per controllare il comportamento della gestione della rimozione definitiva per DELETE gli eventi durante l'elaborazione del tipo 1 della selezione guidata:

  • pipelines.applyChanges.tombstoneGCThresholdInSeconds: impostare questo valore in modo che corrisponda all'intervallo previsto più alto, espresso in secondi, tra i dati non ordinati. Il valore predefinito è 172800 secondi (2 giorni).
  • pipelines.applyChanges.tombstoneGCFrequencyInSeconds: questa impostazione controlla la frequenza, in secondi, per la pulizia delle tombe. Il valore predefinito è 1800 secondi (30 minuti).

Vedere APPLY CHANGES API :Semplificare Change Data Capture in Tabelle Live Delta.

Configurare le autorizzazioni della pipeline

Per gestire le autorizzazioni per la pipeline, è necessario disporre dell'autorizzazione CAN MANAGE o IS OWNER .

  1. Nella barra laterale fare clic su Tabelle live Delta.

  2. Selezionare il nome di una pipeline.

  3. Fare clic sul menu Puntini di sospensione verticalikebab e selezionare Autorizzazioni.

  4. In Autorizzazioni Impostazioni selezionare il menu a discesa Seleziona utente, Gruppo o Entità servizio e quindi selezionare un utente, un gruppo o un'entità servizio.

    Finestra di dialogo Autorizzazioni Impostazioni

  5. Selezionare un'autorizzazione dal menu a discesa delle autorizzazioni.

  6. Fare clic su Aggiungi.

  7. Fare clic su Salva.

Abilitare l'archivio stati di RocksDB per le tabelle Live Delta

È possibile abilitare la gestione dello stato basata su RocksDB impostando la configurazione seguente prima di distribuire una pipeline:

{
  "configuration": {
     "spark.sql.streaming.stateStore.providerClass": "com.databricks.sql.streaming.state.RocksDBStateStoreProvider"
  }
}

Per altre informazioni sull'archivio stati RocksDB, incluse le raccomandazioni di configurazione per RocksDB, vedere Configurare l'archivio stati RocksDB in Azure Databricks.