web-dev-qa-db-ja.com

Apache Airflowの場合、CLI経由でDAGを手動でトリガーするときにパラメーターを渡すにはどうすればよいですか?

Airflowを使用してETLタスクの実行とスケジュールを管理しています。 DAGが作成され、正常に動作します。しかし、手動でCLIを介してDAGをトリガーするときにパラメーターを渡すことは可能ですか?.

たとえば、私のDAGは毎日01:30に実行され、昨日のデータを処理します(時間範囲は昨日の01:30から今日の01:30まで)。データソースに問題がある可能性があります。これらのデータを再処理する必要があります(手動で時間範囲を指定します)。

そのため、スケジュールされたときに、デフォルトの時間範囲が昨日の01:30から今日の01:30であるようなエアフローDAGを作成できますか?次に、データソースに問題がある場合は、DAGを手動でトリガーし、時間範囲をパラメーターとして手動で渡す必要があります。

私が知っているようにairflow testには-tpがあり、タスクにパラメータを渡すことができます。しかし、これは特定のタスクをテストするためだけのものです。 airflow trigger_dagには-tpオプションがありません。それでは、tigger_dagを使用してパラメーターをDAGに渡す方法はありますか?オペレーターはこれらのパラメーターを読み取ることができますか?

ありがとう!

13
Frank Liu

これは、エアフローのドキュメントに従って機能します: https://airflow.Apache.org/cli.html#trigger_dag

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

-cの値が有効なjson文字列であることを確認してください。ここでは、キーを囲む二重引用符が必要です。

0
Hasan J