Gérer le flux des tâches dans les jobs Lakeflow

Certains travaux sont une liste de tâches qui doivent être effectuées. Vous pouvez contrôler l’ordre d’exécution des tâches en spécifiant des dépendances entre elles. Vous pouvez configurer des tâches à exécuter en séquence ou en parallèle.

Toutefois, vous pouvez également créer des flux de branchement qui incluent des tâches conditionnelles, une correction d’erreur ou un nettoyage. Les travaux Lakeflow offrent des fonctionnalités permettant de contrôler le flux de tâches dans un travail. Les rubriques suivantes décrivent les façons dont vous pouvez contrôler le flux de vos tâches.

Nouvelles tentatives

Les nouvelles tentatives spécifient le nombre de fois où une tâche donnée doit être réexécutée si elle échoue avec un message d’erreur. Les erreurs sont souvent temporaires et résolues par le redémarrage. Certaines fonctionnalités d’Azure Databricks, telles que l’évolution du schéma avec Structured Streaming, supposent que vous exécutez des travaux avec nouvelles tentatives pour réinitialiser l’environnement et permettre à un flux de travail de continuer.

Si vous spécifiez des nouvelles tentatives pour une tâche, la tâche redémarre jusqu’au nombre de fois spécifié s’il rencontre une erreur. Toutes les configurations de travaux ne prennent pas en charge les réessais de tâches. Consultez le point pour définir une stratégie de nouvelle tentative.

Lors d’une exécution en mode de déclenchement continu, Databricks effectue automatiquement de nouvelles tentatives avec un backoff exponentiel. Consultez La gestion des défaillances pour les travaux continus.

Tâches conditionnelles « run-if »

Vous pouvez utiliser le type de tâche Run if afin de spécifier des éléments conditionnels pour des tâches ultérieures basées sur le résultat d’autres tâches. Vous ajoutez des tâches à votre travail et spécifiez des tâches dépendantes en amont. En fonction de l’état de ces tâches, vous pouvez configurer une ou plusieurs tâches en aval à exécuter. Les tâches prennent en charge les dépendances suivantes :

  • Tout a réussi
  • Au moins un a réussi
  • Aucun échec
  • Tout est fait
  • Au moins un échec
  • Tous ont échoué

Consultez Configurer les dépendances de tâche

Tâches conditionnelles if/else

Vous pouvez utiliser l'If/else type de tâche pour spécifier des conditions en fonction d’une valeur. Consultez Ajouter une logique de branchement à un travail avec une tâche If/else.

Les travaux Lakeflow prennent en charge les taskValues, que vous définissez dans votre logique et qui permettent de renvoyer les résultats d’un calcul ou un état depuis une tâche vers l’environnement du travail. Vous pouvez définir des conditions If/else sur les taskValues, les paramètres de travail ou des valeurs dynamiques.

Les travaux Lakeflow prennent en charge les opérateurs suivants pour les conditions :

  • ==
  • !=
  • >
  • >=
  • <
  • <=

Voir aussi :

Tâches For each

Utilisez la tâche For each pour exécuter une autre tâche dans une boucle, en passant un jeu de paramètres différent à chaque itération de la tâche.

Pour ajouter une tâche For each à un travail, vous devez définir une tâche For each et une tâche imbriquée . La tâche imbriquée est la tâche à exécuter pour chaque itération de la tâche For each et est l’un des types de tâches Databricks standard. Plusieurs méthodes sont prises en charge pour transmettre des paramètres à la tâche imbriquée.

Consultez Utiliser une For each tâche pour exécuter une autre tâche dans une boucle.

Tâches désactivées

Désactivez une tâche pour l’ignorer au moment de l’exécution sans la supprimer du travail. La tâche conserve sa configuration et son historique d’exécution, et Lakeflow Jobs évalue les tâches en aval par rapport à leurs Run if conditions pour déterminer s’ils s’exécutent également.

Consultez Tâches désactivées dans les Jobs Lakeflow.