Configurar as dependências da tarefa
O campo execução se dependências permite que o senhor adicione lógica de fluxo de controle à tarefa com base no sucesso, na falha ou na conclusão de outra tarefa.
As dependências são representadas visualmente no Job DAG como linhas entre as tarefas.
Databricks executar a tarefa upstream antes de executar a tarefa downstream, executando o maior número possível de tarefas em paralelo.
Observação
Depende de só é visível se o trabalho consistir em várias tarefas.
O Databricks também tem a seguinte funcionalidade para fluxo de controle e condicionalização:
A tarefa de condição If/else é usada para executar uma parte de um Job DAG com base nos resultados de uma expressão booleana. A tarefa
If/else condition
permite que o senhor adicione lógica de ramificação ao seu trabalho. Por exemplo, a execução transformações tarefa somente se a tarefa de ingestão upstream adicionar novos dados. Consulte Adicionar lógica de ramificação a um trabalho com a tarefa If/else.A tarefa For each condition adiciona lógica de looping a outra tarefa com base em uma matriz de entrada. As matrizes de entrada podem ser especificadas manualmente ou geradas dinamicamente. Ver execução a parameterized Databricks Job tarefa in a loop.
A execução Job tarefa permite que o senhor acione outro trabalho em seu workspace. Consulte a execução Job tarefa for Job.
Adicionar uma condição de execução if a uma tarefa
Se o senhor tiver uma tarefa selecionada em seu DAG ao criar uma nova tarefa, sua nova tarefa terá uma dependência configurada nessa tarefa pelo site default.
Para editar ou adicionar condições, faça o seguinte:
Selecione uma tarefa.
No campo Depends on (Depende de ), clique no X para remover uma tarefa ou selecione a tarefa a ser adicionada no menu suspenso.
Selecione uma das opções condicionais no campo execução se dependências.
Clique em Save task (Salvar tarefa).
Run if
opções de condição
O senhor pode adicionar as seguintes condições Run if
a uma tarefa:
Todos foram bem-sucedidos: Todas as dependências foram executadas e bem-sucedidas. Essa é a configuração default. A tarefa é marcada como
Upstream failed
se a condição não for atendida.Pelo menos uma teve sucesso: pelo menos uma dependência foi bem-sucedida. A tarefa é marcada como
Upstream failed
se a condição não for atendida.Nenhum falhou: Nenhuma das dependências falhou e pelo menos uma dependência foi executada. A tarefa é marcada como
Upstream failed
se a condição não for atendida.Tudo pronto: A tarefa é executada após a execução de todas as suas dependências, independentemente do status da execução dependente. Essa condição permite que o senhor defina uma tarefa que seja executada sem depender do resultado de sua tarefa dependente.
Pelo menos uma falhou: pelo menos uma dependência falhou. A tarefa é marcada como
Excluded
se a condição não for atendida.Tudo falhou: todas as dependências falharam. A tarefa é marcada como
Excluded
se a condição não for atendida.
Observação
As tarefas configuradas para lidar com falhas são marcadas como
Excluded
se sua condiçãoRun if
não for atendida. As tarefas excluídas são ignoradas e tratadas como bem-sucedidas.Se todas as dependências da tarefa forem excluídas, a tarefa também será excluída, independentemente de sua condição
Run if
.Se o senhor cancelar a execução de uma tarefa, o cancelamento se propagará pela tarefa downstream e a tarefa com uma condição
Run if
que lida com falhas será executada, por exemplo, para verificar a execução de uma tarefa de limpeza quando a execução de uma tarefa for cancelada.
Exemplo de trabalho com dependências de tarefa
A configuração das dependências da tarefa cria um gráfico acíclico direcionado (DAG) da execução da tarefa, uma forma comum de representar a ordem de execução no programador de trabalhos. Por exemplo, considere o seguinte trabalho que consiste em quatro tarefas:
A tarefa 1 é a tarefa raiz e não depende de nenhuma outra tarefa.
A tarefa 2 e a tarefa 3 dependem de a tarefa 1 ser concluída primeiro.
Por fim, a tarefa 4 depende da conclusão bem-sucedida da tarefa 2 e da tarefa 3.
O diagrama a seguir ilustra a ordem de processamento dessas tarefas: