Configuración de dependencias de tareas
El campo Ejecutar dependencias if le permiten agregar lógica de flujo de control a tareas basadas en el éxito, error o finalización de otras tareas.
Las dependencias se representan visualmente en el DAG del trabajo como líneas entre tareas.
Azure Databricks ejecuta las tareas de subida antes de ejecutar las de bajada, y ejecuta tantas de ellas en paralelo como sea posible.
Nota:
Depende de solo es visible si el trabajo consta de múltiples tareas.
Databricks también tiene la siguiente funcionalidad para el flujo de control y la condicionalización:
- La tarea de condición If/else se usa para ejecutar una parte de un DAG de trabajo en función de los resultados de una expresión booleana. La tarea
If/else condition
permite agregar lógica de ramificación al trabajo. Por ejemplo, ejecute tareas de transformación solo si la tarea de ingesta ascendente agrega nuevos datos. Consulte Agregar lógica de bifurcación a un trabajo con la tarea If/else. - La tarea condicional For each agrega lógica de bucle a otra tarea basada en una matriz de entrada. Las matrices de entrada se pueden especificar manualmente o generar dinámicamente. Consulta Ejecución de una tarea parametrizada de trabajo de Azure Databricks en bucle.
- La tarea Ejecutar trabajo le permite desencadenar otro trabajo en el área de trabajo. Consulte Ejecutar tarea de trabajo para trabajos.
Agregar una condición “Ejecutar si” a una tarea
Si tiene una tarea seleccionada en el DAG al crear una nueva tarea, la nueva tarea tiene configurada una dependencia en esta tarea de forma predeterminada.
Para editar o agregar condiciones, haga lo siguiente:
- Seleccione una tarea.
- En el campo Depende de, haga clic en la X para eliminar una tarea o seleccione tareas para agregarlas en el menú desplegable.
- Seleccione una de las opciones condicionales en el campo Dependencias de ejecución condicional.
- Haga clic en Guardar tarea.
Opciones de condición Run if
Puede agregar las siguientes Run if
condiciones a una tarea:
- Todo correcto: todas las dependencias se han ejecutado y realizado correctamente. Esta es la configuración predeterminada. La tarea se marca como
Upstream failed
si no se cumple la condición. - Al menos una correcta: al menos una dependencia se ha realizado correctamente. La tarea se marca como
Upstream failed
si no se cumple la condición. - Ninguna con errores: ninguna de las dependencias produjo un error y se ejecutó al menos una dependencia. La tarea se marca como
Upstream failed
si no se cumple la condición. - Todo hecho: a tarea se ejecuta después de que se hayan ejecutado todas sus dependencias, sea cual sea el estado de las ejecuciones dependientes. Esta condición permite definir una tarea que se ejecuta sin depender del resultado de sus tareas dependientes.
- Error en al menos una: error en al menos una dependencia. La tarea se marca como
Excluded
si no se cumple la condición. - Todas con errores: se han producido errores en todas las dependencias. La tarea se marca como
Excluded
si no se cumple la condición.
Nota:
- Las tareas configuradas para manipular los errores se marcan como
Excluded
si no se cumple su condiciónRun if
. Las tareas excluidas se omiten y se tratan como correctas. - Si se excluyen todas las dependencias de tareas, la tarea también se excluye, independientemente de su condición
Run if
. - Si se cancela la ejecución de una tarea, la cancelación se propagará a través de tareas de bajada, mientras que las tareas que tengan una condición
Run if
que controla el error se ejecutarán. Por ejemplo: para comprobar que se ejecute una tarea de limpieza cuando se cancele una ejecución de tareas.
Trabajo de ejemplo con dependencias de tareas
La configuración de dependencias de tareas crea un grafo acíclico dirigido (DAG) de ejecución de tareas, una manera común de representar el orden de ejecución en los programadores de trabajos. Por ejemplo, considere el siguiente trabajo que consta de cuatro tareas:
- La tarea 1 es la tarea raíz y no depende de ninguna otra tarea.
- Las tareas 2 y 3 dependen de que la tarea 1 se complete primero.
- Por último, la tarea 4 depende de que la tarea 2 y la tarea 3 se completen correctamente.
En el diagrama siguiente se muestra el orden de procesamiento de estas tareas: