Configurare le dipendenze tra task
Il campo Esegui se le dipendenze consente di aggiungere logica del flusso di controllo ai task in base all'esito positivo, negativo o di completamento di altri task.
Le dipendenze vengono rappresentate visivamente nel DAG del processo come righe tra task.
Azure Databricks esegue attività upstream prima di eseguire attività downstream, eseguendone il maggior numero possibile in parallelo.
Nota
Dipende da è visibile solo se il processo è costituito da più task.
Databricks include anche le funzionalità seguenti per il flusso di controllo e la condizionalizzazione:
- Il task condizione If/else viene utilizzato per eseguire una parte di un DAG processo in base ai risultati di un'espressione booleana. Il task
If/else condition
consente di aggiungere logica di ramificazione al processo. Ad esempio, eseguire task di trasformazione solo se il task di inserimento upstream aggiunge nuovi dati. Vedere Aggiungere la logica di ramificazione al processo con il task If/else. - Il task condizione For each aggiunge logica di ciclo a un altro task in base a una matrice di input. Le matrici di input possono essere specificate manualmente o generate dinamicamente. Si veda Eseguire un'attività di processo di Azure Databricks con parametri in un ciclo.
- Il task Esegui processo consente di attivare un altro processo nell'area di lavoro. Vedere Task Esegui processo per i processi.
Aggiungere una condizione Esegui se a un task
Se è stato selezionato un task nel DAG quando si crea un nuovo task, per impostazione predefinita il nuovo task ha una dipendenza configurata in detto task.
Per modificare o aggiungere condizioni, eseguire le operazioni seguenti:
- Selezionare un task.
- Nel campo Dipende da, cliccare la X per rimuovere un task o selezionare i task da aggiungere dal menu a discesa.
- Selezionare una delle opzioni condizionali nel campo Esegui se dipendenze.
- Cliccare Salva task.
Opzioni condizione Run if
È possibile aggiungere le condizioni Run if
seguenti a un task:
- Tutte le operazioni riuscite: tutte le dipendenze sono state eseguite e riuscite. Si tratta dell'impostazione predefinita. Il task viene contrassegnato come
Upstream failed
se la condizione non è soddisfatta. - Almeno una riuscita: almeno una dipendenza è riuscita. Il task viene contrassegnato come
Upstream failed
se la condizione non è soddisfatta. - Nessuna non riuscita: nessuna delle dipendenze non è riuscita e almeno una dipendenza è stata eseguita. Il task viene contrassegnato come
Upstream failed
se la condizione non è soddisfatta. - Operazione completata: il task viene eseguito dopo l'esecuzione di tutte le relative dipendenze, a prescindere dallo stato delle esecuzioni dipendenti. Questa condizione consente di definire un task eseguito senza dipendere dal risultato dei task dipendenti.
- Almeno una non riuscita: almeno una dipendenza non è riuscita. Il task viene contrassegnato come
Excluded
se la condizione non è soddisfatta. - Tutte non riuscite: tutte le dipendenze non sono riuscite. Il task viene contrassegnato come
Excluded
se la condizione non è soddisfatta.
Nota
- I task configurati per gestire gli errori vengono contrassegnati come
Excluded
se la rispettiva condizioneRun if
non è soddisfatta. I task esclusi vengono ignorati e vengono considerati correttamente eseguiti. - Se vengono escluse tutte le relazioni tra task, viene escluso anche il task, indipendentemente dalla relativa condizione
Run if
. - Se si annulla l'esecuzione di un task, l'annullamento viene propagato tramite task downstream e i task con una condizione
Run if
che gestisce gli errori vengono eseguite, ad esempio, per accertare che si verifichi l'esecuzione di un task di pulizia quando l'esecuzione di un task viene annullata.
Processo di esempio con relazioni tra attività
La configurazione delle dipendenze delle attività crea un grafo aciclico diretto (DAG) dell'esecuzione dell'attività, un modo comune per rappresentare l'ordine di esecuzione nelle utilità di pianificazione dei processi. Si consideri ad esempio il processo seguente costituito da quattro attività:
- L'attività 1 è l'attività radice e non dipende da altre attività.
- L'attività 2 e l'attività 3 dipendono dall'attività 1 completata per prima.
- Infine, l'attività 4 dipende dal corretto completamento dell'attività 2 e dell'attività 3.
Il seguente diagramma illustra l’ordine di elaborazione di queste attività: