Tâches désactivées dans les travaux Lakeflow

Une tâche désactivée dans un travail Azure Databricks Lakeflow est ignorée au moment de l’exécution sans être supprimée du travail. Les tâches désactivées conservent leur configuration et leur historique d’exécution. Vous pouvez donc les réactiver ultérieurement sans regénérer la tâche. Cette page explique comment les tâches désactivées se comportent lorsqu’un travail s’exécute, y compris leur effet sur les tâches en aval, les réparations et les exécutions partielles.

Comportement de la tâche en aval

Lorsqu'un travail s'exécute, Lakeflow Jobs évalue chaque tâche en aval en fonction de sa condition Run if par rapport à ses tâches en amont pour décider s’il faut exécuter, ignorer ou désactiver la tâche. Les tâches désactivées se terminent avec un code de terminaison Disabled.

Si la condition d’exécution d’une tâche en aval ne peut pas être remplie, car une ou plusieurs tâches parentes sont désactivées, Lakeflow Jobs marque également la tâche en aval comme désactivée pour cette exécution. Les tâches en aval désactivées affichent un Icône de cercle barré. dans le coin supérieur droit de l’affichage DAG (Directed Acyclic Graph), vous pouvez donc voir l’impact avant de commencer une exécution.

Le tableau suivant résume le comportement en aval de chaque condition Run if lorsqu'une tâche en amont est désactivée. Pour obtenir la liste complète des options Exécuter si , consultez Configurer les dépendances de tâche.

Condition d’exécution Comportement de tâche en aval lorsqu’une tâche parente est désactivée Exemple
Tous réussis (valeur par défaut) La tâche en aval ne s’exécute pas. Une tâche parente désactivée ne répond pas à l’exigence succeeded . A (disabled) → B: B ne s’exécute pas.
Au moins un a réussi La tâche en aval s’exécute si au moins une autre tâche parente a réussi. Si toutes les autres tâches parentes ont échoué ou ont été désactivées, la tâche en aval ne s’exécute pas. A (disabled) et C (succeeded) → B: B s’exécute.
Aucun n'a échoué La tâche en aval s’exécute si au moins une tâche parente s’est terminée sans échec. Si toutes les tâches parentes sont désactivées, la tâche en aval ne s’exécute pas. A (disabled) et C (skipped) → B: B s’exécute car aucune tâche parente n’a échoué.
Toutes les opérations effectuées La tâche en aval s’exécute normalement. Une tâche parente désactivée est traitée comme terminée. A (disabled) → B: B fonctionne.
Au moins un échec La tâche en aval s’exécute si au moins une autre tâche parente a échoué. Une tâche parente désactivée n’est pas traitée comme une défaillance. Si aucune autre tâche parente n’a échoué, la tâche en aval ne s’exécute pas. A (disabled) et C (failed) → B: B s’exécute.
Tous ont échoué La tâche en aval ne s’exécute pas. Une tâche parente désactivée n’est pas traitée comme une défaillance. A (disabled) → B: B ne s’exécute pas.

Note

Seules les tâches que vous désactivez explicitement ont disabled: true dans la définition du travail. Les travaux lakeflow déterminent la désactivation en aval au moment de la création du processus d'exécution et ne le conservent pas dans les paramètres de la tâche.

Désactiver une tâche

Pour désactiver ou réactiver une tâche à l’aide de l’interface utilisateur, consultez Désactiver une tâche.

Pour désactiver une tâche via l’API ou un bundle :

Définissez disabled: true sur la tâche dans les paramètres du travail à l’aide de l’API REST Jobs, de l’interface CLI Azure Databricks, du sdk Azure Databricks ou d’un Declarative Automation Bundles :

{
  "tasks": [
    {
      "task_key": "load_raw_data",
      "disabled": true,
      "notebook_task": {
        "notebook_path": "/Shared/etl/load_raw_data"
      }
    }
  ]
}

Les réponses jobs/get et jobs/list retournent disabled: true uniquement pour les tâches que vous avez désactivées explicitement. Les tâches désactivées dynamiquement pendant une exécution ne sont pas reflétées dans les paramètres de travail stockés.

Tâches désactivées dans les réparations et les exécutions partielles

Les tâches désactivées se comportent différemment dans les exécutions de réparation et les exécutions partielles que dans une exécution planifiée classique :

  • Réparations: Les travaux Lakeflow utilisent l’état d’exécution de chaque tâche pour déterminer ce qui doit être réparé, et non l’état désactivé de la tâche. Pour forcer l’exécution d’une tâche désactivée dans le cadre d’une réparation, incluez-la dans rerun_tasks la demande de réparation. Consultez Réexécuter les tâches qui ont échoué et qui ont été ignorées.
  • Exécutions partielles : Les tâches désactivées ne sont pas sélectionnées par défaut lorsque vous démarrez une exécution partielle, mais vous pouvez les sélectionner une seule fois sans les réactiver dans les paramètres du travail. Les travaux Lakeflow exécutent exactement les tâches que vous sélectionnez et n'appliquent pas la propagation Run if lors d'une exécution partielle. Lorsque vous utilisez + des modificateurs dans le only champ pour inclure des tâches en amont ou en aval, l’extension n’inclut pas les tâches désactivées. Pour inclure des tâches désactivées, vous devez les ajouter explicitement.

Limitations

Les tâches désactivées présentent les limitations suivantes :

  • Une If/else condition tâche échoue si la tâche en amont qui fournit sa valeur de condition est désactivée.
  • Une For each tâche échoue si la tâche en amont qui fournit ses valeurs d’entrée est désactivée.
  • Seules les tâches désactivées par l’utilisateur apparaissent comme disabled: true dans la définition du travail. Pour voir quelles tâches en aval sont affectées avant d’exécuter le travail, utilisez la vue DAG dans l’interface utilisateur des travaux.