Gerenciar o fluxo de tarefas em Jobs do Lakeflow

Alguns trabalhos são 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 Lakeflow Jobs 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. Consulte Configurar uma política de repetição.

Ao executar no modo de gatilho contínuo, o Databricks repetirá automaticamente com retirada exponencial. Consulte o tratamento de falhas para trabalhos contínuos.

Tarefas condicionais Run 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 oferecem suporte às seguintes dependências:

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

Consulte Configurar dependências de tarefas

Tarefas condicionais if/else

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

Os Trabalhos do Lakeflow oferecem suporte a taskValues que você define na sua lógica e permitem retornar os resultados de alguma computação ou estado de uma tarefa para o ambiente dos trabalhos. Você pode definir condições If/else em relação a taskValues, parâmetros do trabalho ou valores dinâmicos.

O Lakeflow Jobs 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 à tarefa aninhada.

Consulte Usar uma tarefa For each para executar outra tarefa em um loop.

Tarefas desabilitadas

Desabilite uma tarefa para ignorá-la em tempo de execução sem removê-la do trabalho. A tarefa mantém seu histórico de configuração e execução, e o Lakeflow Jobs avalia tarefas downstream em relação às suas Run if condições para determinar se elas também são executadas.

Consulte Tarefas desabilitadas em Jobs do Lakeflow.