Aller au contenu principal

Configurer les dépendances de tâche

Le champ Dépendances d'exécution conditionnelle vous permet d'ajouter une logique de contrôle de flux aux tâches en fonction de la réussite, de l'échec ou de l'achèvement d'autres tâches.

Les dépendances sont représentées visuellement dans le DAG du Job sous forme de lignes entre les tâches.

Databricks exécute les tâches en amont avant d'exécuter les tâches en aval, en exécutant le plus grand nombre possible d'entre elles en parallèle.

remarque

**Dépend de** n'est visible que si le job est composé de plusieurs tâches.

Databricks dispose également des fonctionnalités suivantes pour le flux de contrôle et la conditionnalisation :

Ajoutez une condition d'exécution si à une tâche

Si vous avez sélectionné une tâche dans votre DAG lorsque vous créez une nouvelle tâche, votre nouvelle tâche a une dépendance configurée sur cette tâche par default.

Pour modifier ou ajouter des conditions, veuillez procéder comme suit :

  1. Sélectionnez une tâche.
  2. Dans le champ Dépend de , cliquez sur la X pour supprimer une tâche ou sélectionnez les tâches à ajouter dans le menu déroulant.
  3. Sélectionnez l'une des options conditionnelles dans le champ **Exécuter si dépendances**.
  4. Cliquez sur Enregistrer la tâche .

Run if options de condition

Vous pouvez ajouter les Run if conditions suivantes à une tâche :

  • Tous ont réussi : Toutes les dépendances ont été exécutées et ont réussi. Ceci est le paramètre default. La tâche est marquée comme Upstream failed si la condition n'est pas remplie.
  • Au moins une dépendance a réussi : Au moins une dépendance a réussi. La tâche est marquée Upstream failed si la condition n’est pas remplie.
  • **Aucune n'a échoué** : Aucune des dépendances n'a échoué, et au moins une dépendance a été exécutée. La tâche est marquée Upstream failed si la condition n’est pas remplie.
  • Terminé : la tâche est exécutée après l'exécution de toutes ses dépendances, quel que soit l'état des exécutions dépendantes. Cette condition vous permet de définir une tâche qui est exécutée sans dépendre du résultat de ses tâches dépendantes.
  • Au moins un échec : Au moins une dépendance a échoué. La tâche est marquée Excluded si la condition n’est pas remplie.
  • Tout a échoué : toutes les dépendances ont échoué. La tâche est marquée Excluded si la condition n’est pas remplie.
remarque
  • Les tâches en amont avec l’état de résultat Excluded sont considérées comme réussies lors de l’évaluation des conditions Run if. Les tâches en amont marquées Upstream failed ou Upstream canceled sont traitées comme ayant échoué, et non comme ignorées.
  • Les tâches configurées pour gérer les échecs sont marquées comme Excluded si leur condition Run if n'est pas remplie. Une tâche exclue est ignorée.
  • Si toutes les dépendances d'une tâche sont exclues, la tâche elle-même est également exclue, quelle que soit sa condition Run if.
  • Cette exclusion se propage le long d'une chaîne de dépendances linéaire. Par exemple, dans une chaîne A → B → C, si A est exclu, alors B est exclu (toutes ses dépendances sont exclues), ce qui exclut à son tour C, de sorte qu'aucune de ces tâches ne s'exécute.
  • Si vous annulez l'exécution d'une tâche, l'annulation se propage aux tâches en aval, et les tâches avec une condition Run if qui gère l'échec sont exécutées, par exemple, pour vérifier qu'une tâche de nettoyage s'exécute lorsqu'une exécution de tâche est annulée.
  • Si une tâche en amont est désactivée, les tâches en aval sont évaluées en fonction de leur condition Run if et peuvent également être désactivées pour cette exécution. Pour la liste complète des résultats, consultez Comportement de la tâche en aval.

Exemple de job avec des dépendances de tâche

La configuration des dépendances de tâches crée un Graphe orienté acyclique (DAG) de l'exécution des tâches, une manière courante de représenter l'ordre d'exécution dans les planificateurs de Job. Par exemple, considérez le job suivant composé de quatre tâches :

Diagramme d’exemple des dépendances de tâche

  • La tâche 1 est la tâche racine et ne dépend d'aucune autre tâche.
  • La Tâche 2 et la Tâche 3 dépendent de l’achèvement de la Tâche 1.
  • Enfin, la tâche 4 dépend des tâches 2 et 3 qui se terminent avec succès.

Le diagramme suivant illustre l'ordre de traitement pour ces tâches :

Exemple de flux de dépendances de tâches