web-dev-qa-db-fra.com

Pour Apache Airflow, comment puis-je transmettre les paramètres lorsque je déclenche manuellement DAG via CLI?

J'utilise Airflow pour gérer l'exécution et la planification des tâches ETL. Un DAG a été créé et cela fonctionne très bien. Mais est-il possible de passer des paramètres lors du déclenchement manuel du dag via cli.

Par exemple: Mon DAG s'exécute tous les jours à 01h30 et traite les données d'hier (plage horaire de 01h30 hier à 01h30 aujourd'hui). Il peut y avoir des problèmes avec la source de données. Je dois retraiter ces données (spécifier manuellement la plage de temps).

Puis-je créer un tel DAG de flux d'air, quand il est programmé, que la plage horaire par défaut est de 01h30 hier à 01h30 aujourd'hui. Ensuite, si quelque chose ne va pas avec la source de données, je dois déclencher manuellement le DAG et passer manuellement la plage de temps en tant que paramètres.

Comme je le sais airflow test a -tp qui peut transmettre des paramètres à la tâche. Mais ce n'est que pour tester une tâche spécifique. et airflow trigger_dag n'a pas -tp option. Existe-t-il un moyen de tigger_dag et de passer des paramètres au DAG, puis l'opérateur peut lire ces paramètres?

Merci!

13
Frank Liu

Cela devrait fonctionner, selon la documentation du flux d'air: https://airflow.Apache.org/cli.html#trigger_dag

airflow trigger_dag -c '{"key1":1, "key2":2}' dag_id

Assurez-vous que la valeur de -c est une chaîne json valide, donc les guillemets doubles entourant les clés sont nécessaires ici.

0
Hasan J