Configurer les dépendances entre tâches
Le champ Dépendances Exécuter si vous permet d’ajouter une logique de flux de contrôle 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 visuellement représentées dans le DAG de travail sous forme de lignes entre les tâches.
Azure Databricks exécute des tâches en amont avant d’exécuter des tâches en aval, en exécutant autant d’entre elles en parallèle que possible.
Remarque
Dépend de est uniquement visible si le travail consiste en plusieurs tâches.
Databricks dispose également des fonctionnalités suivantes pour le flux de contrôle et la conditionnalité :
- La tâche basée sur une condition If/else permet d’exécuter une partie d’un DAG (graphe orienté acyclique) de travail en fonction des résultats d’une expression booléenne. La tâche
If/else condition
vous permet d’ajouter une logique de branchement à votre travail. Par exemple, exécutez des tâches de transformation uniquement si la tâche d’ingestion en amont ajoute de nouvelles données. Consultez Ajouter une logique d’embranchement à votre projet avec la tâche If/else. - La tâche de condition For each ajoute une logique de bouclage à une autre tâche en fonction d’un tableau d’entrée. Les tableaux d’entrée peuvent être spécifiés manuellement ou générés dynamiquement. Consultez Exécuter une tâche de travail Azure Databricks paramétrable dans une boucle.
- La tâche Exécuter le travail vous permet de déclencher un autre travail dans votre espace de travail. Consultez Exécuter la tâche travail pour les travaux.
Ajouter une condition Exécuer si à une tâche
Si vous avez une tâche sélectionnée dans votre DAG lorsque vous créez une tâche, votre nouvelle tâche a une dépendance configurée sur cette tâche par défaut.
Pour modifier ou ajouter des conditions, procédez comme suit :
- Sélectionnez une tâche.
- Dans le champ Dépend de, cliquez sur le X pour supprimer une tâche ou sélectionnez des tâches à ajouter depuis le menu déroulant.
- Sélectionnez l’une des options conditionnelles dans le champ Dépendances Exécuter si.
- Cliquez sur Enregistrer la tâche.
Options de condition Run if
Vous pouvez ajouter les conditions Run if
suivantes à une tâche :
- Réussite totale : toutes les dépendances ont été exécutées et ont réussi. Il s’agit du paramètre par défaut. La tâche porte la marque
Upstream failed
si la condition n’est pas remplie. - Au moins une réussite : au moins une dépendance a réussi. La tâche porte la marque
Upstream failed
si la condition n’est pas remplie. - Aucun échec : aucune des dépendances n’a échoué et au moins une dépendance a été exécutée. La tâche porte la marque
Upstream failed
si la condition n’est pas remplie. - Terminés : 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 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 porte la marque
Excluded
si la condition n’est pas remplie. - Échec total : toutes les dépendances ont échoué. La tâche porte la marque
Excluded
si la condition n’est pas remplie.
Remarque
- Les tâches configurées pour gérer les échecs portent la marque
Excluded
si leur conditionRun if
n’est pas remplie. Les tâches exclues sont ignorées et sont traitées comme réussies. - Si toutes les dépendances de tâche sont exclues, la tâche est également exclue, quelle que soit sa condition
Run if
. - Si vous annulez une exécution de tâche, l’annulation se propage aux tâches en aval, et les tâches ayant 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 quand une exécution de tâche est annulée.
Exemple de travail avec dépendances entre tâches
La configuration des dépendances de tâche crée une graphe orienté acyclique (DAG) d’exécution des tâches, une méthode courante de représentation de l’ordre d’exécution dans les planificateurs de travaux. Par exemple, imaginez le travail suivant constitué de quatre tâches :
- 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’exécution préalable de la tâche 1.
- Enfin, la tâche 4 dépend de l’exécution réussie de la tâche 2 et de la tâche 3.
Le diagramme suivant illustre l’ordre de traitement de ces tâches :