Agregar lógica de bifurcación a un trabajo con la tarea tipo If/else

Use la tarea If/else condition para agregar lógica condicional booleana a gráficos de tareas. Estas tareas constan de un operador booleano y un par de operandos, donde los operandos pueden hacer referencia al estado de trabajo o tarea mediante parámetros configurados o dinámicos, o valores de tarea. Consulte Parameterize jobs (Parametrización de trabajos).

Por ejemplo, supongamos que tiene una tarea denominada process_records que mantiene un recuento de registros que no son válidos en un valor denominado bad_records y desea ramificar el procesamiento cuando encuentre registros no válidos. Para agregar esta lógica al flujo de trabajo, cree una tarea If/else condition con una expresión, como {{tasks.process_records.values.bad_records}} > 0. A continuación, agregue tareas dependientes en función de los resultados de la condición.

Una vez completada la ejecución de un trabajo que contenga una tarea If/else condition, podrá ver el resultado de la expresión y los detalles de la evaluación de expresiones al ver los detalles de ejecución del trabajo en la interfaz de usuario. Consulte Visualización de los detalles de ejecución de trabajos.

Note

  • Los valores numéricos y no numéricos se manipulan de forma diferente en función del operador booleano:
    • Los operadores == y != realizan una comparación de cadenas de sus operandos. Por ejemplo, 12.0 == 12 se evalúa como false.
    • Los >operadores , >=, <y <= realizan comparaciones numéricas de sus operandos. Por ejemplo, 12.0 >= 12 se evalúa como true y 10.0 >= 12 se evalúa como false.
    • Solo se permiten valores numéricos, de cadena y booleanos al hacer referencia a valores de tarea en un operando. Cualquier otro tipo hace que se produzca un error en la expresión de condición. Los tipos de valor no numérico se serializan en cadenas y se tratan como cadenas en expresiones If/else condition. Por ejemplo, si un valor de tarea se establece como valor booleano, se serializa en "true" o "false".

Configurar una tarea If/else

Agregue una tarea If/else condition desde la pestaña Tareas de la interfaz de usuario trabajos haciendo lo siguiente:

  1. Haga clic en el icono Más.Agregar tarea.
  2. Escriba un nombre en el campo Nombre de tarea.
  3. En el menú desplegable Tipo, seleccione If/else condition.
  4. Escriba el operando que se vaya a evaluar en el primer cuadro de texto Condición. El operando puede hacer referencia a cualquiera de los siguientes valores:
    • Variable de parámetro de trabajo, por ejemplo {{job.parameters.<name>}}.
    • Una variables de parámetros de una tarea.
    • Un valor de tarea, por ejemplo {{tasks.<task_name>.values.<value_name>}}, .
  5. Seleccione un operador booleano en el menú desplegable.
  6. En el segundo cuadro de texto Condición, escriba el valor para evaluar la condición.
  7. (Opcional) Para configurar reintentos, umbrales de tiempo de ejecución o trabajos pendientes de streaming, o notificaciones, consulte Configuración avanzada de tareas.
  8. Haga clic en Guardar tarea.

Para editar, clonar, deshabilitar o eliminar esta tarea, consulte Configuración y edición de tareas en trabajos de Lakeflow.

Configuración de dependencias en una condición If/else

Configure las dependencias de la tarea desde el gráfico de tareas If/else condition de la pestaña Tareas haciendo lo siguiente:

  1. Seleccione la If/else condition tarea en el gráfico de tareas y haga clic en el icono Más.Agregar tarea.
  2. Escriba los detalles de la tarea. El campo Depende de tiene el valor predeterminado de <task-name> (true), donde <task-name> es el nombre de la tarea If/else condition.
    • Seleccione <task-name> (false) para configurar una tarea que se ejecute en una evaluación de condición falsa.

Puede configurar varias tareas para que se ejecuten en serie o en paralelo en función del resultado de If/else condition. Considere la posibilidad de configurar Run if dependencies si necesita ejecuciones condicionales basadas en errores de tareas previas. Consulte Configuración de dependencias de tareas.

Note

Una If/else condition tarea falla si la tarea ascendente que proporciona su valor de condición está deshabilitada. Consulte Limitaciones.

Recursos adicionales