Compartilhar via


Controlar o fluxo de tarefas em um trabalho do Databricks

Alguns trabalhos são simplesmente uma lista de tarefas que precisam ser concluídas. Você pode controlar a ordem de execução das tarefas especificando dependências entre elas. Você pode configurar tarefas a serem executadas em sequência ou paralela.

No entanto, você também pode criar fluxos de ramificação que incluem tarefas condicionais, correção de erro ou limpeza. O Azure Databricks fornece funcionalidade para controlar o fluxo de tarefas em um trabalho. Os tópicos a seguir descrevem maneiras de controlar o fluxo de suas tarefas.

Novas tentativas

As novas tentativas especificam quantas vezes uma tarefa específica deve ser executada novamente se a tarefa falhar com uma mensagem de erro. Os erros geralmente são transitórios e resolvidos por meio da reinicialização. Alguns recursos no Azure Databricks, como a evolução do esquema com o Streaming Estruturado, pressupõem que você execute tarefas com reexecuções para restaurar o ambiente e permitir que um fluxo de trabalho prossiga.

Se você especificar novas tentativas para uma tarefa, a tarefa será reiniciada até o número especificado de vezes se encontrar um erro. Nem todas as configurações de trabalho dão suporte a novas tentativas de tarefa. Confira Configurar uma política de repetição.

Ao executar no modo de gatilho contínuo, o Databricks repetirá automaticamente com uma retirada exponencial. Veja Como as falhas são tratadas para trabalhos contínuos?.

Executar tarefas condicionais if

Você pode usar o tipo de tarefa Run if para especificar condicionais para tarefas posteriores com base no resultado de outras tarefas. Você pode adicionar tarefas ao trabalho e especificar tarefas dependentes upstream. Com base no status dessas tarefas, você pode configurar uma ou mais tarefas downstream a serem executadas. Os trabalhos são compatíveis com as seguintes dependências:

  • Todos bem-sucedidos
  • Pelo menos um foi bem-sucedido
  • Nenhum falhou
  • Tudo feito
  • Pelo menos um falhou
  • Tudo falhou

Confira Configuração de dependências de tarefa

Tarefas condicionais if/else

Você pode usar o tipo de tarefa If/else para especificar condicionais com base em algum valor. Confira Adicionar lógica de ramificação a um trabalho com a tarefa If/else.

Os trabalhos dão suporte a taskValues que você define como na sua lógica e permitem que você retorne os resultados de algum cálculo ou estado de uma tarefa para o ambiente de trabalhos. Você pode definir condições If/else em relação a taskValues, a parâmetros de trabalho ou a valores dinâmicos.

O Azure Databricks dá suporte aos seguintes operandos para condicionais:

  • ==
  • !=
  • >
  • >=
  • <
  • <=

Veja também:

Tarefas for each

Use a tarefa For each para executar outra tarefa em um loop, passando um conjunto diferente de parâmetros para cada iteração da tarefa.

Para adicionar uma tarefa For each a um trabalho, você deve definir uma tarefa For each e uma tarefa aninhada. A tarefa aninhada é a tarefa que deve ser executada para cada iteração da tarefa For each e é um dos tipos de tarefa padrão do Databricks. Há suporte para vários métodos para passar parâmetros para a tarefa aninhada.

Confira Executar uma tarefa parametrizada do Azure Databricks em um loop.