Contrôler le flux des tâches au sein des Lakeflow Jobs
Certains Jobs sont une liste de tâches qui doivent être accomplies. Vous pouvez contrôler l'ordre d'exécution des tâches en spécifiant les dépendances entre elles. Vous pouvez configurer les tâches pour qu'elles s'exécutent en séquence ou en parallèle.
Cependant, vous pouvez également créer des flux de branchement qui incluent des tâches conditionnelles, la correction d'erreurs ou le nettoyage. Lakeflow Jobs offre des fonctionnalités pour contrôler le flux des tâches au sein d'un job. Les sujets suivants décrivent les façons dont vous pouvez contrôler le flux de vos tâches.
Tentatives
Les tentatives spécifient le nombre de fois qu'une tâche particulière doit être réexécutée si elle échoue avec un message d'erreur. Les erreurs sont souvent transitoires et résolues par un redémarrage. Certaines fonctionnalités de Databricks, telles que l'évolution des schémas avec Structured Streaming, supposent que vous exécutez des Jobs avec des tentatives pour Reset l'environnement et permettre à un flux de travail de se poursuivre.
Si vous spécifiez des nouvelles tentatives pour une tâche, la tâche redémarre jusqu'au nombre de fois spécifié en cas d'erreur. Toutes les configurations de Job ne prennent pas en charge les nouvelles tentatives pour les tâches. Voir Définir une règle des nouvelles tentatives.
Lors de l’exécution en mode de Trigger continu, Databricks réessaie automatiquement avec une interruption exponentielle. Consultez la gestion des pannes pour les jobs continus.
Exécuter si les tâches conditionnelles
Vous pouvez utiliser le type de tâche « Exécuter si » pour spécifier des conditions pour les tâches ultérieures en fonction du résultat d'autres tâches. Vous ajoutez des tâches à votre job et spécifiez les tâches dépendantes en amont. En fonction du statut de ces tâches, vous pouvez configurer une ou plusieurs tâches en aval à exécuter. Les Jobs prennent en charge les dépendances suivantes :
- Tout a réussi
- Au moins un a réussi
- Aucun échec
- Terminé
- Au moins un échec
- Tout a échoué
Consultez Configurer les dépendances de tâche
Tâches conditionnelles If/else
Vous pouvez utiliser le type de tâche **Si/sinon** pour spécifier des conditions basées sur une valeur. Consultez Ajouter une logique de branchement à un job avec la tâche If/else.
Lakeflow Jobs prend en charge taskValues que vous définissez dans votre logique et vous permet de renvoyer les résultats d'un calcul ou d'un état d'une tâche à l'environnement de jobs. Vous pouvez définir des conditions **If/else** taskValues par rapport à, les paramètres de job ou les valeurs dynamiques.
Lakeflow Jobs prend en charge les opérandes suivants pour les conditionnelles :
==!=>>=<<=
Voir aussi :
- Utilisez les valeurs de tâche pour transmettre des informations entre les tâches.
- Références de valeur dynamiques
- Paramétrer les jobs
Pour chaque tâche
Utilisez la tâche For each pour exécuter une autre tâche en boucle, en transmettant un ensemble de paramètres différent à chaque itération de la tâche.
Pour ajouter une tâche For each à un job, 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âche Databricks standard. Plusieurs méthodes sont prises en charge pour passer des parameters à la tâche imbriquée.
Consultez Utiliser une tâche For each pour exécuter une autre tâche en boucle.
Tâches désactivées
Désactiver une tâche pour l'ignorer lors de l'exécution sans la supprimer du Job. La tâche conserve sa configuration et son historique d'exécution, et Lakeflow Jobs évalue les tâches en aval par rapport à leurs conditions Run if pour déterminer si elles doivent également s'exécuter.