Condividi tramite


Panoramica dell'orchestrazione in Databricks

Azure Databricks offre un'esperienza predefinita per orchestrare i carichi di lavoro di elaborazione dei dati, in modo da poter gestire ed eseguire più processi come parte di un flusso di lavoro più ampio. È possibile semplificare, ottimizzare e pianificare l'esecuzione di attività ripetibili frequenti che semplificano la gestione di flussi di lavoro complessi.

Questo articolo presenta concetti e scelte correlate alla gestione dei carichi di lavoro di produzione tramite processi di Databricks.

Che cosa sono i lavori?

In Databricks, viene utilizzato un job per pianificare e orchestrare le attività nei flussi di lavoro in Databricks . I flussi di lavoro comuni per l'elaborazione dei dati includono flussi di lavoro ETL, notebook in esecuzione e flussi di lavoro di Machine Learning (ML), nonché l'integrazione con sistemi esterni come dbt e Azure Data Factory (ADF).

I processi sono costituiti da una o più attività e supportano la logica del flusso di controllo personalizzata, ad esempio le istruzioni if/else, o il ciclo (per ogni istruzione) usando un'interfaccia utente di creazione visiva. Le attività possono caricare o trasformare i dati in un flusso di lavoro ETL o compilare, eseguire il training e distribuire modelli di Machine Learning in modo controllato e ripetibile come parte delle pipeline di Machine Learning.

Esempio: processo giornaliero di elaborazione e convalida dei dati

L'esempio seguente illustra un processo in Azure Databricks.

Esempio che mostra un processo nell'interfaccia di Azure Databricks con 4 attività e un trigger da eseguire ogni giorno.

Questo processo di esempio presenta le caratteristiche seguenti:

  1. La prima attività inserisce i dati sui ricavi.
  2. La seconda attività è un controllo if/else per i valori Null.
  3. In caso contrario, viene eseguita un'attività di trasformazione.
  4. In caso contrario, esegue un task del notebook con una convalida della qualità dei dati.
  5. È pianificata per l'esecuzione ogni giorno alle 11:29 AM.

Per un'introduzione rapida alla creazione del proprio job, vedere Creare il primo flusso di lavoro con un job di Azure Databricks.

Casi d'uso comuni

Dai principi fondamentali di progettazione dei dati all'apprendimento automatico avanzato e all'integrazione senza problemi degli strumenti, questi casi d'uso comuni illustrano l'ampiezza delle funzionalità che guidano l'analisi moderna, l'automazione del flusso di lavoro e la scalabilità dell'infrastruttura.

| ingegneria dei dati | pipeline ETL (Estrazione, Trasformazione, Caricamento): automatizzare l'estrazione dei dati da diverse fonti, trasformare i dati in un formato appropriato e caricarli in un data warehouse o data lake. Guarda Esegui il tuo primo carico di lavoro ETL su Azure Databricks

Migrazione dei dati: spostare i dati da un sistema a un altro.

Elaborazione continua dei dati: Utilizzare Jobs per attività di elaborazione continua dei dati, come l'invio di dati in streaming da origini come Kafka e la scrittura in tabelle Delta. | | data science e machine learning | addestramento dei modelli: pianificare ed eseguire processi di addestramento dei modelli di machine learning per assicurarsi che i modelli vengano addestrati sui dati più recenti.

Inferenza batch: automatizzare il processo di esecuzione dei lavori di inferenza batch per generare previsioni da modelli addestrati.

l'ottimizzazione degli iperparametri: orchestrare i processi di ottimizzazione degli iperparametri per ottimizzare i modelli di Machine Learning. | | Analytics e creazione di report | query pianificate: eseguire le query SQL in un'attività a intervalli regolari per generare report o aggiornare i tuoi dashboard.

aggregazione dei dati: eseguire attività di aggregazione dati regolari per preparare i dati per l'analisi. | | Automatizzare le attività | flussi di lavoro con più attività: creare flussi di lavoro complessi che coinvolgono più attività, ad esempio l'esecuzione di una serie di notebook, file JAR, query SQL o pipeline di tabelle live delta.

logica condizionale: usare la logica condizionale per controllare il flusso di attività in base all'esito positivo o negativo delle attività precedenti. | | Integrazione con altri strumenti | Airflow e Azure Data Factory (ADF): attivare processi di Azure Databricks usando strumenti di orchestrazione esterni come Apache Airflow e Azure Data Factory, consentendo flussi di lavoro più complessi e integrati.

Notifiche e monitoraggio: configurare le notifiche e monitorare i risultati dell'esecuzione dei processi usando l'interfaccia utente, l'interfaccia della riga di comando o l'API di Azure Databricks o usando integrazioni con strumenti come Slack e webhook. | | 'infrastruttura come codice (IaC) | bundle di asset di Databricks: gestire processi e altre risorse come codice per facilitare il controllo della versione, la revisione del codice e le procedure CI/CD (Continuous Integration/Continuous Deployment). |

Concetti relativi all'orchestrazione

Esistono tre concetti principali quando si usa l'orchestrazione in Azure Databricks: processi, attività e trigger.

lavoro: un lavoro è la risorsa primaria utilizzata per coordinare, pianificare ed eseguire le operazioni. I processi possono variare in modo complesso da una singola attività che esegue un notebook di Azure Databricks a centinaia di attività con logica condizionale e dipendenze. Le attività in un processo sono rappresentate visivamente da un grafo aciclico diretto (DAG). È possibile specificare le proprietà per il lavoro, tra cui:

  • Trigger: definisce quando eseguire il processo.
  • Parametri: parametri di esecuzione che vengono automaticamente inseriti nelle attività all'interno del processo.
  • Notifiche: messaggi di posta elettronica o webhook da inviare quando un processo non riesce o richiede troppo tempo.
  • Git: impostazioni del controllo del codice sorgente per i compiti lavorativi.

Attività - Un'attività è un'unità di lavoro specifica all'interno di un processo. Ogni attività può eseguire un'ampia gamma di operazioni, tra cui:

  • Un'attività di notebook esegue un notebook Databricks. Tu specifichi il percorso del notebook e i parametri necessari.
  • Un'attività della pipeline esegue una pipeline. È possibile specificare una pipeline per tabelle Delta Live esistenti, ad esempio una vista materializzata o una tabella di streaming.
  • Un task di script Python esegue un file Python. Specificare il percorso del file e gli eventuali parametri necessari.

Esistono molti tipi di attività. Per un elenco completo, vedere Tipi di attività. Le attività possono avere dipendenze da altre attività ed eseguire in modo condizionale altre attività, consentendo di creare flussi di lavoro complessi con logica condizionale e dipendenze.

Trigger: un trigger è un meccanismo che avvia l'esecuzione di un processo in base a condizioni o eventi specifici. Un trigger può essere basato sul tempo, ad esempio l'esecuzione di un processo in un'ora pianificata (ad esempio, ogni giorno alle 2:00) o basato su eventi, ad esempio l'esecuzione di un processo quando arrivano nuovi dati nell'archiviazione cloud.

monitoraggio e osservabilità

I job offrono il supporto integrato per il monitoraggio e l'osservabilità. Negli argomenti seguenti viene fornita una panoramica di questo supporto. Per altre informazioni sul monitoraggio dei processi e dell'orchestrazione, vedere Monitoraggio e osservabilità per i processi di Databricks.

monitoraggio e osservabilità dei processi nell'interfaccia utente: nell'interfaccia utente di Azure Databricks è possibile visualizzare i processi, inclusi i dettagli, ad esempio il proprietario del processo e il risultato dell'ultima esecuzione e filtrare in base alle proprietà del processo. È possibile visualizzare una cronologia delle esecuzioni delle attività e ottenere informazioni dettagliate su ogni compito.

stato di esecuzione del job e metriche - Databricks segnala l'esito positivo dell'esecuzione del job e registra log e metriche per ogni attività all'interno di essa per diagnosticare i problemi e comprendere le prestazioni.

notifiche e avvisi: è possibile configurare le notifiche per gli eventi di processo tramite posta elettronica, Slack, webhook personalizzati e una serie di altre opzioni.

Query personalizzate tramite tabelle di sistema - Azure Databricks fornisce tabelle di sistema che registrano le esecuzioni dei processi e le attività sull'account. È possibile usare queste tabelle per eseguire query e analizzare le prestazioni e i costi dei processi. È possibile creare dashboard per visualizzare le metriche e le tendenze dei processi, per monitorare l'integrità e le prestazioni dei flussi di lavoro.

Limiti

Esistono le limitazioni seguenti:

  • In un'area di lavoro, il numero massimo di esecuzioni di attività simultanee è 2000. Una risposta 429 Too Many Requests viene restituita quando si richiede un'esecuzione che non può iniziare immediatamente.
  • Il numero massimo di processi che un'area di lavoro può creare in un'ora è 10000 (inclusi “run submit”). Questo limite influisce anche sui processi creati dall'API REST e dai flussi di lavoro dei notebook.
  • Un'area di lavoro può contenere fino a 12000 processi salvati.
  • Un processo può contenere fino a 100 attività.

È possibile gestire i flussi di lavoro a livello di codice?

Databricks offre strumenti e API che consentono di pianificare e orchestrare i flussi di lavoro a livello di codice, inclusi i seguenti:

Per esempi di uso di strumenti e API per creare e gestire processi, vedere Automatizzare la creazione e la gestione dei processi. Per la documentazione su tutti gli strumenti di sviluppo disponibili, vedere Strumenti di sviluppo locali.

Gli strumenti esterni usano gli strumenti e le API di Databricks per pianificare flussi di lavoro a livello di codice. È possibile pianificare i processi usando strumenti come Azure Data Factory o Apache AirFlow.

Orchestrazione del flusso di lavoro con Apache AirFlow

È possibile usare Apache Airflow per gestire e pianificare i flussi di lavoro dei dati. Con Airflow si definisce il flusso di lavoro in un file Python e Airflow gestisce la pianificazione e l'esecuzione del flusso di lavoro. Vedere Orchestrare i processi di Azure Databricks con Apache Airflow.

Orchestrazione flussi di lavoro di Azure Data Factory

Data Factory di Azure (ADF) è un servizio di integrazione dei dati nel cloud che consente di creare servizi di archiviazione, movimento ed elaborazione in pipeline di dati automatizzate. È possibile usare Azure Data Factory per orchestrare un processo di Azure Databricks come parte di una pipeline di Azure Data Factory.

ADF dispone anche del supporto predefinito per eseguire notebook di Databricks, script Python o codice incluso in file JAR in una pipeline di Azure Data Factory.

Per informazioni su come eseguire un notebook di Databricks in una pipeline di Azure Data Factory, vedere Eseguire un notebook di Databricks con l'attività notebook di Databricks in Azure Data Factory, seguita da Trasformare i dati eseguendo un notebook di Databricks.

Per informazioni su come eseguire uno script Python in una pipeline di Azure Data Factory, vedere Trasformare i dati eseguendo un'attività Python in Azure Databricks.

Per informazioni su come eseguire il codice incluso in un file JAR in una pipeline di Azure Data Factory, vedere Trasformare i dati eseguendo un'attività JAR in Azure Databricks.