Creare ed eseguire processi di Azure Databricks
Questo articolo illustra in dettaglio come creare ed eseguire processi di Azure Databricks usando l'interfaccia utente processi.
Per informazioni sulle opzioni di configurazione per i processi e su come modificare i processi esistenti, vedere Configurare le impostazioni per i processi di Azure Databricks.
Per informazioni su come gestire e monitorare le esecuzioni dei processi, vedere Visualizzare e gestire le esecuzioni dei processi.
Per creare il primo flusso di lavoro con un processo di Azure Databricks, vedere la guida introduttiva.
Importante
- Un'area di lavoro è limitata a 1000 esecuzioni simultanee. Una risposta
429 Too Many Requests
viene restituita quando si richiede un'esecuzione che non può iniziare immediatamente. - Il numero di processi che un'area di lavoro può creare in un'ora è limitato a 10000 (include "esecuzioni di invio"). Questo limite influisce anche sui processi creati dall'API REST e dai flussi di lavoro del notebook.
- Un'area di lavoro può contenere fino a 12000 processi salvati.
- Un processo può contenere fino a 100 attività.
Creare ed eseguire processi usando l'interfaccia della riga di comando, l'API o i notebook
- Per informazioni sull'uso dell'interfaccia della riga di comando di Databricks per creare ed eseguire processi, vedere Che cos'è l'interfaccia della riga di comando di Databricks?.
- Per informazioni sull'uso dell'API Processi per creare ed eseguire processi, vedere Processi nelle informazioni di riferimento sull'API REST.
- Per informazioni su come eseguire e pianificare i processi direttamente in un notebook di Databricks, vedere Creare e gestire processi di notebook pianificati.
Creare un processo
Esegui una delle operazioni seguenti:
- Fare clic su
Flussi di lavoro nella barra laterale e fare clic su .
- Nella barra laterale fare clic su
Nuovo e selezionare Processo.
La scheda Attività viene visualizzata con la finestra di dialogo Crea attività insieme al pannello Dettagli processo contenente le impostazioni a livello di processo.
- Fare clic su
Sostituire Nuovo processo con il nome del processo.
Immettere un nome per l'attività nel campo Nome attività.
Nel menu a discesa Tipo selezionare il tipo di attività da eseguire. Vedere Opzioni del tipo di attività.
Configurare il cluster in cui viene eseguita l'attività. Per impostazione predefinita, l'ambiente di calcolo serverless è selezionato se l'area di lavoro si trova in un'area di lavoro abilitata per il catalogo unity ed è stata selezionata un'attività supportata dal calcolo serverless per i flussi di lavoro. Vedere Eseguire il processo di Azure Databricks con calcolo serverless per i flussi di lavoro. Se l'ambiente di calcolo serverless non è disponibile o si vuole usare un tipo di calcolo diverso, è possibile selezionare un nuovo cluster di processi o un cluster all-purpose esistente nel menu a discesa Calcolo .
- Nuovo cluster di processi: fare clic su Modifica nel menu a discesa Cluster e completare la configurazione del cluster.
- Cluster all-purpose esistente: selezionare un cluster esistente nel menu a discesa Cluster (Cluster ). Per aprire il cluster in una nuova pagina, fare clic
sull'icona a destra del nome e della descrizione del cluster.
Per altre informazioni sulla selezione e la configurazione dei cluster per l'esecuzione di attività, vedere Usare l'ambiente di calcolo di Azure Databricks con i processi.
Per aggiungere librerie dipendenti, fare clic su + Aggiungi accanto a Librerie dipendenti. Vedere Configurare le librerie dipendenti.
È possibile passare parametri per l'attività. Per informazioni sui requisiti per la formattazione e il passaggio di parametri, vedere Passare i parametri a un'attività di processo di Azure Databricks.
Per ricevere facoltativamente notifiche per l'avvio, l'esito positivo o negativo dell'attività, fare clic su + Aggiungi accanto a Messaggi di posta elettronica. Le notifiche di errore vengono inviate in caso di errore dell'attività iniziale ed eventuali tentativi successivi. Per filtrare le notifiche e ridurre il numero di messaggi di posta elettronica inviati, selezionare Disattiva notifiche per le esecuzioni ignorate, Disattiva notifiche per le esecuzioni annullate o Disattiva notifiche fino all'ultimo tentativo.
Per configurare facoltativamente un criterio di ripetizione dei tentativi per l'attività, fare clic su + Aggiungi accanto a Nuovi tentativi. Vedere Configurare un criterio di ripetizione dei tentativi per un'attività.
Per configurare facoltativamente la durata o il timeout previsto dell'attività, fare clic su + Aggiungi accanto a Soglia durata. Vedere Configurare un tempo di completamento previsto o un timeout per un'attività.
Cliccare su Crea.
Dopo aver creato la prima attività, è possibile configurare impostazioni a livello di processo, ad esempio notifiche, trigger di processo e autorizzazioni. Vedere Modificare un processo.
Per aggiungere un'altra attività, fare clic nella visualizzazione DAG. Se è stata selezionata l'opzione Serverless compute o configurato un nuovo cluster di processi per un'attività precedente, viene fornita un'opzione cluster condiviso . È anche possibile configurare un cluster per ogni attività quando si crea o si modifica un'attività. Per altre informazioni sulla selezione e la configurazione dei cluster per l'esecuzione di attività, vedere Usare l'ambiente di calcolo di Azure Databricks con i processi.
Facoltativamente, è possibile configurare impostazioni a livello di processo, ad esempio notifiche, trigger di processo e autorizzazioni. Vedere Modificare un processo. È anche possibile configurare parametri a livello di processo condivisi con le attività del processo. Vedere Aggiungere parametri per tutte le attività del processo.
Opzioni del tipo di attività
Di seguito sono riportati i tipi di attività che è possibile aggiungere al processo di Azure Databricks e le opzioni disponibili per i diversi tipi di attività:
Notebook: nel menu a discesa Origine selezionare Area di lavoro per usare un notebook che si trova in una cartella dell'area di lavoro di Azure Databricks o un provider Git per un notebook che si trova in un repository Git remoto.
Area di lavoro: usare il browser file per trovare il notebook, fare clic sul nome del notebook e fare clic su Conferma.
Provider Git: fare clic su Modifica o aggiungere un riferimento Git e immettere le informazioni sul repository Git. Vedere Usare un notebook da un repository Git remoto.
Nota
L'output totale della cella del notebook (l'output combinato di tutte le celle del notebook) è soggetto a un limite di dimensioni di 20 MB. Inoltre, l'output di una singola cella è soggetto a un limite di dimensioni di 8 MB. Se l'output totale della cella supera le dimensioni di 20 MB o se l'output di una singola cella è maggiore di 8 MB, l'esecuzione viene annullata e contrassegnata come non riuscita.
Se è necessario trovare celle vicino o oltre il limite, eseguire il notebook in un cluster all-purpose e usare questa tecnica di salvataggio automatico del notebook.
JAR: specificare la classe Main. Usare il nome completo della classe contenente il metodo main,
org.apache.spark.examples.SparkPi
ad esempio . Fare quindi clic su Aggiungi in Librerie dipendenti per aggiungere librerie necessarie per eseguire l'attività. Una di queste librerie deve contenere la classe principale.Per altre informazioni sulle attività JAR, vedere Usare un file JAR in un processo di Azure Databricks.
Spark Submit (Invio Spark): nella casella di testo Parametri specificare la classe principale, il percorso del file JAR della libreria e tutti gli argomenti, formattati come matrice JSON di stringhe. L'esempio seguente configura un'attività spark-submit per eseguire gli
DFSReadWriteTest
esempi di Apache Spark:["--class","org.apache.spark.examples.DFSReadWriteTest","dbfs:/FileStore/libraries/spark_examples_2_12_3_1_1.jar","/discover/databricks-datasets/README.md","/FileStore/examples/output/"]
Importante
Esistono diverse limitazioni per le attività di invio spark:
- È possibile eseguire attività spark-submit solo in nuovi cluster.
- Spark-submit non supporta la scalabilità automatica del cluster. Per altre informazioni sulla scalabilità automatica, vedere Scalabilità automatica del cluster.
- Spark-submit non supporta le utilità di Databricks (dbutils). Per usare le utilità di Databricks, usare invece le attività JAR.
- Se si usa un cluster abilitato per Unity Catalog, spark-submit è supportato solo se il cluster usa la modalità di accesso assegnata. La modalità di accesso condiviso non è supportata.
- I processi di Spark Streaming non devono mai avere un numero massimo di esecuzioni simultanee impostate su maggiore di 1. I processi di streaming devono essere impostati per l'esecuzione usando l'espressione
"* * * * * ?"
cron (ogni minuto). Poiché un'attività di streaming viene eseguita continuamente, deve essere sempre l'attività finale in un processo.
Script Python: nel menu a discesa Origine selezionare un percorso per lo script Python, area di lavoro per uno script nell'area di lavoro locale, DBFS per uno script che si trova in DBFS o provider Git per uno script che si trova in un repository Git. Nella casella di testo Path (Percorso) immettere il percorso dello script Python:
Area di lavoro: nella finestra di dialogo Seleziona file Python passare allo script Python e fare clic su Conferma.
DBFS: immettere l'URI di uno script Python in DBFS o nell'archiviazione cloud,
dbfs:/FileStore/myscript.py
ad esempio .Provider Git: fare clic su Modifica e immettere le informazioni sul repository Git. Vedere Usare il codice Python da un repository Git remoto.
Pipeline di tabelle live delta: nel menu a discesa Pipeline selezionare una pipeline delta live tables esistente.
Importante
È possibile usare solo pipeline attivate con l'attività Pipeline . Le pipeline continue non sono supportate come attività di processo. Per altre informazioni sulle pipeline attivate e continue, vedere Esecuzione continua e attivata della pipeline.
Python Wheel: nella casella di testo Nome pacchetto immettere il pacchetto da importare,
myWheel-1.0-py2.py3-none-any.whl
ad esempio . Nella casella di testo Punto di ingresso immettere la funzione da chiamare all'avvio del file wheel python. Fare clic su Aggiungi in Librerie dipendenti per aggiungere le librerie necessarie per eseguire l'attività.SQL: nel menu a discesa attività SQL selezionare Query, Dashboard legacy, Avviso o File.
Nota
- L'attività SQL richiede Databricks SQL e un serverless o pro SQL Warehouse.
Query: nel menu a discesa Query SQL selezionare la query da eseguire durante l'esecuzione dell'attività.
Dashboard legacy: nel menu a discesa Dashboard SQL selezionare un dashboard da aggiornare quando viene eseguita l'attività.
Avviso: nel menu a discesa Avviso SQL selezionare un avviso da attivare per la valutazione.
File: per usare un file SQL che si trova in una cartella dell'area di lavoro di Azure Databricks, nel menu a discesa Origine selezionare Area di lavoro, usare il browser file per trovare il file SQL, fare clic sul nome file e fare clic su Conferma. Per usare un file SQL che si trova in un repository Git remoto, selezionare Provider Git, fare clic su Modifica o Aggiungere un riferimento Git e immettere i dettagli per il repository Git. Vedere Usare query SQL da un repository Git remoto.
Nel menu a discesa SQL Warehouse selezionare un serverless o pro SQL Warehouse per eseguire l'attività.
dbt: vedere Usare trasformazioni dbt in un processo di Azure Databricks per un esempio dettagliato di configurazione di un'attività dbt.
Esegui processo: nel menu a discesa Processo selezionare un processo da eseguire dall'attività. Per cercare il processo da eseguire, iniziare a digitare il nome del processo nel menu Processo .
Importante
Non è consigliabile creare processi con dipendenze circolari quando si usano l'attività o i
Run Job
processi che annidano più di treRun Job
attività. Le dipendenze circolari sonoRun Job
attività che si attivano direttamente o indirettamente tra loro. Ad esempio, il processo A attiva il processo B e il processo B attiva il processo A. Databricks non supporta i processi con dipendenze circolari o che annidano più di treRun Job
attività e potrebbero non consentire l'esecuzione di questi processi nelle versioni future.If/else: per informazioni su come usare l'attività
If/else condition
, vedere Aggiungere la logica di diramazione al processo con l'attività condizione If/else.Per ognuna: per informazioni su come usare l'attività
For each
, vedere [_}(/jobs/task-iteration-with-foreach.md).
Passare parametri a un'attività di processo di Azure Databricks
È possibile passare parametri a molti dei tipi di attività di processo. Ogni tipo di attività ha requisiti diversi per la formattazione e il passaggio dei parametri.
Per accedere alle informazioni sull'attività corrente, ad esempio il nome dell'attività o passare il contesto relativo all'esecuzione corrente tra le attività del processo, ad esempio l'ora di inizio del processo o l'identificatore dell'esecuzione del processo corrente, usare riferimenti a valori dinamici. Per visualizzare un elenco di riferimenti a valori dinamici disponibili, fare clic su Sfoglia valori dinamici.
Se i parametri del processo sono configurati nel processo a cui appartiene un'attività, questi parametri vengono visualizzati quando si aggiungono parametri di attività. Se i parametri di processo e attività condividono una chiave, il parametro del processo ha la precedenza. Nell'interfaccia utente viene visualizzato un avviso se si tenta di aggiungere un parametro di attività con la stessa chiave di un parametro di processo. Per passare i parametri del processo alle attività non configurate con parametri chiave-valore, ad JAR
esempio o Spark Submit
attività, formattare gli argomenti come {{job.parameters.[name]}}
, sostituendo [name]
con l'oggetto key
che identifica il parametro .
Notebook: fare clic su Aggiungi e specificare la chiave e il valore di ogni parametro da passare all'attività. È possibile eseguire l'override o aggiungere parametri aggiuntivi quando si esegue manualmente un'attività usando l'opzione Esegui un processo con parametri diversi. I parametri impostano il valore del widget del notebook specificato dalla chiave del parametro .
JAR: usare una matrice di stringhe in formato JSON per specificare i parametri. Queste stringhe vengono passate come argomenti al metodo main della classe main. Vedere Configurazione dei parametri del processo JAR.
Spark Submit: i parametri vengono specificati come matrice di stringhe in formato JSON. Conforme alla convenzione apache Spark-submit , i parametri dopo il percorso JAR vengono passati al metodo main della classe main.
Python Wheel: nel menu a discesa Parametri selezionare Argomenti posizionali per immettere i parametri come matrice di stringhe in formato JSON oppure selezionare Argomenti > parola chiave Aggiungi per immettere la chiave e il valore di ogni parametro. Entrambi gli argomenti posizionali e di parole chiave vengono passati all'attività della rotellina Python come argomenti della riga di comando. Per un esempio di lettura degli argomenti in uno script Python incluso in un file con rotellina Python, vedere Usare un file wheel python in un processo di Azure Databricks.
Esegui processo: immettere la chiave e il valore di ogni parametro del processo da passare al processo.
Script Python: usare una matrice di stringhe in formato JSON per specificare i parametri. Queste stringhe vengono passate come argomenti e possono essere lette come argomenti posizionali o analizzate usando il modulo argparse in Python. Per un esempio di lettura degli argomenti posizionali in uno script Python, vedere Passaggio 2: Creare uno script per recuperare i dati di GitHub.
SQL: se l'attività esegue una query con parametri o un dashboard con parametri, immettere i valori per i parametri nelle caselle di testo specificate.
Copiare un percorso attività
Alcuni tipi di attività, ad esempio le attività del notebook, consentono di copiare il percorso nel codice sorgente dell'attività:
- Fare clic sulla scheda Attività .
- Selezionare l'attività contenente il percorso da copiare.
- Fare clic
accanto al percorso dell'attività per copiare il percorso negli Appunti.
Creare un processo da un processo esistente
È possibile creare rapidamente un nuovo processo clonando un processo esistente. La clonazione di un processo crea una copia identica del processo, ad eccezione dell'ID processo. Nella pagina del processo fare clic su Altro ... accanto al nome del processo e selezionare Clona dal menu a discesa.
Creare un'attività da un'attività esistente
È possibile creare rapidamente una nuova attività clonando un'attività esistente:
- Nella pagina del processo fare clic sulla scheda Attività .
- Selezionare l'attività da clonare.
- Fare clic
e selezionare Clona attività.
Eliminare un processo
Per eliminare un processo, nella pagina del processo fare clic su Altro ... accanto al nome del processo e selezionare Elimina dal menu a discesa.
Eliminare un'attività
Per eliminare un'attività:
- Fare clic sulla scheda Attività .
- Selezionare l'attività da eliminare.
- Fare clic
e selezionare Rimuovi attività.
Eseguire un processo
- Fare clic su
Flussi di lavoro nella barra laterale.
- Selezionare un processo e fare clic sulla scheda Esecuzioni . È possibile eseguire un processo immediatamente o pianificare l'esecuzione del processo in un secondo momento.
Se una o più attività in un processo con più attività hanno esito negativo, è possibile rieseguare il subset di attività non riuscite. Vedere Rieseguare attività non riuscite e ignorate.
Eseguire immediatamente un processo
Per eseguire immediatamente il processo, fare clic su .
Suggerimento
È possibile eseguire un'esecuzione di test di un processo con un'attività notebook facendo clic su Esegui ora. Se è necessario apportare modifiche al notebook, fare clic su Esegui di nuovo dopo aver modificato il notebook eseguirà automaticamente la nuova versione del notebook.
Eseguire un processo con parametri diversi
È possibile usare Esegui ora con parametri diversi per eseguire nuovamente un processo con parametri diversi o valori diversi per i parametri esistenti.
Nota
Non è possibile eseguire l'override dei parametri del processo se un processo eseguito prima dell'introduzione dei parametri dell'attività overrode con la stessa chiave.
- Fare clic
accanto a Esegui ora e selezionare Esegui ora con parametri diversi oppure nella tabella Esecuzioni attive fare clic su Esegui ora con parametri diversi. Immettere i nuovi parametri a seconda del tipo di attività. Vedere Passare i parametri a un'attività di processo di Azure Databricks.
- Fai clic su Esegui.
Eseguire un processo come entità servizio
Nota
Se il processo esegue query SQL usando l'attività SQL, l'identità usata per eseguire le query viene determinata dalle impostazioni di condivisione di ogni query, anche se il processo viene eseguito come entità servizio. Se una query è configurata su Run as owner
, la query viene sempre eseguita usando l'identità del proprietario e non l'identità dell'entità servizio. Se la query è configurata su Run as viewer
, la query viene eseguita usando l'identità dell'entità servizio. Per altre informazioni sulle impostazioni di condivisione delle query, vedere Configurare le autorizzazioni per le query.
Per impostazione predefinita, i processi vengono eseguiti come identità del proprietario del processo. Ciò significa che il processo presuppone le autorizzazioni del proprietario del processo. Il processo può accedere solo ai dati e agli oggetti di Azure Databricks a cui il proprietario del processo ha le autorizzazioni di accesso. È possibile modificare l'identità eseguita dal processo come in un'entità servizio. Il processo presuppone quindi le autorizzazioni dell'entità servizio anziché del proprietario.
Per modificare l'impostazione Esegui come , è necessario disporre dell'autorizzazione CAN MANAGE o IS OWNER per il processo. È possibile impostare l'impostazione Esegui come su se stessi o su qualsiasi entità servizio nell'area di lavoro in cui si dispone del ruolo utente dell'entità servizio. Per altre informazioni, vedere Ruoli per la gestione delle entità servizio.
Nota
Quando l'impostazione in un'area RestrictWorkspaceAdmins
di lavoro è impostata su ALLOW ALL
, gli amministratori dell'area di lavoro possono anche modificare l'impostazione Esegui come su qualsiasi utente nell'area di lavoro. Per limitare gli amministratori dell'area di lavoro a modificare solo l'impostazione Esegui come su se stessi o sulle entità servizio in cui ha il ruolo utente dell'entità servizio, vedere Limitare gli amministratori dell'area di lavoro.
Per modificare il campo RunAs, eseguire le operazioni seguenti:
- Nella barra laterale fare clic su
Flussi di lavoro.
- Nella colonna Nome fare clic sul nome del processo.
- Nel pannello laterale Dettagli processo fare clic sull'icona a forma di matita accanto al campo Esegui come.
- Cercare e selezionare l'entità servizio.
- Fare clic su Salva.
È anche possibile elencare le entità servizio su cui si ha il ruolo Utente usando l'API Entità servizio dell'area di lavoro. Per altre informazioni, vedere Elencare le entità servizio che è possibile usare.
Eseguire un processo in base a una pianificazione
È possibile usare una pianificazione per eseguire automaticamente il processo di Azure Databricks in orari e periodi specificati. Vedere Aggiungere una pianificazione del processo.
Eseguire un processo continuo
È possibile assicurarsi che sia sempre attiva l'esecuzione del processo. Vedere Eseguire un processo continuo.
Eseguire un processo all'arrivo di nuovi file
Per attivare l'esecuzione di un processo quando arrivano nuovi file in un percorso esterno o un volume del catalogo Unity, usare un trigger di arrivo file.
Visualizzare ed eseguire un processo creato con un bundle di asset di Databricks
È possibile usare l'interfaccia utente dei processi di Azure Databricks per visualizzare ed eseguire i processi distribuiti da un bundle di asset di Databricks. Per impostazione predefinita, questi processi sono di sola lettura nell'interfaccia utente processi. Per modificare un processo distribuito da un bundle, modificare il file di configurazione del bundle e ridistribuire il processo. L'applicazione delle modifiche solo alla configurazione del bundle garantisce che i file di origine del bundle acquisiscano sempre la configurazione del processo corrente.
Tuttavia, se è necessario apportare modifiche immediate a un processo, è possibile disconnettere il processo dalla configurazione del bundle per abilitare la modifica delle impostazioni del processo nell'interfaccia utente. Per disconnettere il processo, fare clic su Disconnetti dall'origine. Nella finestra di dialogo Disconnetti dall'origine fare clic su Disconnetti per confermare.
Le modifiche apportate al processo nell'interfaccia utente non vengono applicate alla configurazione del bundle. Per applicare le modifiche apportate nell'interfaccia utente al bundle, è necessario aggiornare manualmente la configurazione del bundle. Per riconnettere il processo alla configurazione del bundle, ridistribuire il processo usando il bundle.
Cosa accade se il processo non può essere eseguito a causa dei limiti di concorrenza?
Nota
La coda è abilitata per impostazione predefinita quando i processi vengono creati nell'interfaccia utente.
Per impedire che le esecuzioni di un processo vengano ignorate a causa dei limiti di concorrenza, è possibile abilitare la coda per il processo. Quando la coda è abilitata, se le risorse non sono disponibili per un'esecuzione del processo, l'esecuzione viene accodata per un massimo di 48 ore. Quando la capacità è disponibile, l'esecuzione del processo viene dequeued ed eseguita. Le esecuzioni in coda vengono visualizzate nell'elenco delle esecuzioni per il processo e nell'elenco delle esecuzioni di processi recenti.
Un'esecuzione viene accodata quando viene raggiunto uno dei limiti seguenti:
- Numero massimo di esecuzioni attive simultanee nell'area di lavoro.
- L'attività simultanea
Run Job
massima viene eseguita nell'area di lavoro. - Numero massimo di esecuzioni simultanee del processo.
L'accodamento è una proprietà a livello di processo che viene eseguita solo per il processo.
Per abilitare o disabilitare la coda, fare clic su Impostazioni avanzate e fare clic sul pulsante Attiva/Disattiva coda nel pannello laterale Dettagli processo.