Pular para o conteúdo principal

Adicione lógica de ramificação a um Job com a tarefa If/else

Use a tarefa If/else condition para adicionar lógica condicional booleana a gráficos de tarefas. Essas tarefas consistem em um operador booleano e um par de operandos, onde os operandos podem referenciar o estado do Job ou da tarefa usando parâmetros configurados ou dinâmicos ou valores de tarefa. Consulte Parameterizar Jobs.

Por exemplo, suponha que você tenha uma tarefa chamada process_records que mantém uma contagem de registros inválidos em um valor chamado bad_records, e você deseja ramificar o processamento quando encontrar registros inválidos. Para adicionar essa lógica ao seu fluxo de trabalho, você pode criar uma tarefa If/else condition com uma expressão como {{tasks.process_records.values.bad_records}} > 0. Você pode adicionar tarefas dependentes com base nos resultados da condição.

Após uma execução de Job que contenha uma tarefa If/else condition, você pode view o resultado e os detalhes da avaliação da expressão ao view os detalhes da execução do Job na UI. Consulte Detalhes da execução do job da View.

nota
  • Valores numéricos e não numéricos são tratados de forma diferente dependendo do operador Boolean:
    • Os operadores == e != realizam comparação de strings de seus operandos. Por exemplo, 12.0 == 12 é avaliado como falso.
    • Os operadores >, >=, < e <= executam comparações numéricas de seus operandos. Por exemplo, 12.0 >= 12 é avaliado como verdadeiro e 10.0 >= 12 é avaliado como falso.
    • Somente valores numéricos, de strings e booleanos são permitidos ao fazer referência a valores de tarefa em um operando. Quaisquer outros tipos resultam na falha da expressão de condição. Tipos de valores não numéricos são serializados como strings e são tratados como strings em expressões If/else condition. Por exemplo, se o valor de uma tarefa for definido como um valor Boolean, ele é serializado para "true" ou "false".

Configure uma tarefa If/else

Adicione uma If/else condition tarefa na tab **Tarefas** na interface de usuário de Jobs, fazendo o seguinte:

  1. Clique em Ícone de mais. Adicionar tarefa .

  2. Insira um nome no campo **Nome da tarefa**.

  3. No menu suspenso Tipo , selecione If/else condition.

  4. Insira o operando a ser avaliado na primeira caixa de texto **Condição**. O operando pode fazer referência a qualquer um dos seguintes:

    • Uma variável de parâmetro de Job, por exemplo {{job.parameters.<name>}}.
    • Uma variável de parâmetro de tarefa.
    • Um valor de tarefa, por exemplo {{tasks.<task_name>.values.<value_name>}}.
  5. Selecione um operador booleano no menu suspenso.

  6. Na segunda caixa de texto **Condição**, insira o valor para avaliar a condição.

  7. (Opcional) Para configurar tentativas, duração da execução ou limites de backlog de transmissão, ou notificações, consulte configurações avançadas da tarefa.

  8. Clique em Salvar tarefa .

Para editar, clonar, desabilitar ou excluir esta tarefa, consulte Configurar e editar tarefas em Jobs do Lakeflow.

Configure as dependências em uma condição If/else

Configure as dependências na If/else condition tarefa do gráfico de tarefas na tab **Tarefas** fazendo o seguinte:

  1. Selecione a tarefa If/else condition no gráfico de tarefas e clique em Ícone de mais. Adicionar tarefa .
  2. Insira os detalhes da tarefa. O campo **Depende de** assume como default,<task-name> (true) onde <task-name> é o nome da tarefa.If/else condition
    • Selecione <task-name> (false) para configurar uma tarefa que é executada com uma avaliação de condição falsa.

É possível configurar várias tarefas para serem executadas em série ou em paralelo com base no resultado de um If/else condition. Considere configurar Run if dependencies se precisar de execuções condicionalizadas com base em falhas de tarefas upstream. Consulte Configurar dependências de tarefa.

nota

Uma tarefa If/else condition falha se a tarefa upstream que fornece seu valor de condição estiver desabilitada. Consulte Limitações.