web-dev-qa-db-fra.com

Comment ignorer des tâches sur Airflow?

J'essaie de comprendre si Airflow prend en charge les tâches de saut dans un DAG pour les exécutions ad hoc?

Disons que mon graphique DAG ressemble à ceci: task1> task2> task3> task4

Et je voudrais démarrer mon DAG manuellement à partir de task3, quelle est la meilleure façon de le faire?

J'ai lu à propos de ShortCircuitOperator, mais je recherche une solution plus ad hoc qui peut s'appliquer une fois l'exécution déclenchée.

Merci!

5
Maayan

À partir de la façon dont Apache Airflow est construit, vous pouvez écrire la logique/les branches pour déterminer les tâches à exécuter.

[~ # ~] mais [~ # ~]

Vous ne pouvez pas démarrer l'exécution d'une tâche à partir d'une tâche intermédiaire. L'ordre est complètement défini par la gestion des dépendances (amont/aval).

Cependant, si vous utilisez l'opérateur céleri, vous pouvez ignorer toutes les dépendances lors d'une exécution et demander à airflow d'exécuter la tâche à votre guise. Là encore, cela n'empêchera pas la planification des tâches en amont.

0
Tameem

Oui, vous cliquez simplement sur la tâche 3. Cochez les cases à droite du bouton Exécuter pour ignorer les dépendances, puis cliquez sur Exécuter.

enter image description here

0
stephen meckstroth

Maayan, Il existe une solution très sale mais très simple et la plus évidente. pratiquement 30 secondes. Mais, cela n'est possible que si vous pouvez facilement mettre à jour le code dans PROD et la possibilité d'empêcher temporairement d'autres personnes d'exécuter le DAG. Commenter simplement les tâches que vous souhaitez ignorer

'# task1> task2>

task3> task4

Une solution plus sérieuse mais avec plus d'efforts sera probablement de créer dynamiquement le DAG sur la base d'un paramètre start_from_task et dans ce cas les dépendances seront construites en utilisant ce paramètre. Le paramètre peut être modifié dans l'interface utilisateur à l'aide du menu Admin ==> Variables. Vous pouvez probablement également utiliser une autre variable de temps d'exportation de la variable précédente. par exemple. - le DAG ignorera la tâche 1 et la tâche 2 jusqu'à 14:05:30 et exécutera ensuite l'intégralité du DAG.

0
Saar Porat