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.
Questo processo di esempio presenta le caratteristiche seguenti:
- La prima attività inserisce i dati sui ricavi.
- La seconda attività è un controllo if/else per i valori Null.
- In caso contrario, viene eseguita un'attività di trasformazione.
- In caso contrario, esegue un task del notebook con una convalida della qualità dei dati.
- È programmata per essere eseguita ogni giorno alle 11:29.
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.
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 inviati automaticamente alle 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 DLT esistente, 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 lavori che un'area di lavoro può creare in un'ora è limitato a 10000 (incluso “runs 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:
- Interfaccia della riga di comando di Databricks
- Bundle di risorse di Databricks
- Estensione Databricks per Visual Studio Code
- Databricks-sdk
- API REST dei lavori
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 di supporto predefinito per eseguire i notebook di Databricks, script Python o codice incluso in file JAR in una pipeline ADF.
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.