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.
- 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 e10.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".
- Os operadores
Configure uma tarefa If/else
Adicione uma If/else condition tarefa na tab **Tarefas** na interface de usuário de Jobs, fazendo o seguinte:
-
Clique em
Adicionar tarefa .
-
Insira um nome no campo **Nome da tarefa**.
-
No menu suspenso Tipo , selecione
If/else condition. -
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>}}.
- Uma variável de parâmetro de Job, por exemplo
-
Selecione um operador booleano no menu suspenso.
-
Na segunda caixa de texto **Condição**, insira o valor para avaliar a condição.
-
(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.
-
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:
- Selecione a tarefa
If/else conditionno gráfico de tarefas e clique emAdicionar tarefa .
- 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.
- Selecione
É 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.
Uma tarefa If/else condition falha se a tarefa upstream que fornece seu valor de condição estiver desabilitada. Consulte Limitações.