2016-06-24 9 views
15

私はAirflowを使用してバッチジョブをスケジュールしています。毎晩1つのDAG(A)と毎月1回実行する別のDAG(B)があります。 Bは成功裏に完了したAに依存する。ただし、Bの実行には時間がかかります。したがって、SLAレポートをより良くするために、別のDAGに保存したいと考えています。エアフローのDAG間の依存関係を設定するにはどうすればよいですか?

DAGの実行をDAG Aの実行に依存するようにするにはどうすればよいですか?

答えて

17

この動作は、ExternalTask​​Sensorというオペレータを使用して実現できます。 あなたの仕事DAG(B)中の(B1)は、スケジュールおよびDAG内のタスク(A2)の成功のために待つことになる(A)

External Task Sensor documentation

+0

しかし、依存関係を視覚化することはできません。 – nono

+1

@nonoはい。あなたはしません。 –

+1

これをお勧めしますか?私はDagA(5つのタスクから成る)とDagB(5つの別々のタスク)を待つ必要がある毎日のタスクを持っています。私のDagCは、これらの両方が成功するのを待ってから、DBから2つのテーブルをクエリし、それらを集約して結合し、いくつかの電子メール/ファイルを送信する必要があります。 – trench

5

TriggerDagRunOperatorが同様に使用することができるように見えますし、いくつかのロジックを追加するためにpython呼び出し可能を使用することができます。ここで説明したように:https://www.linkedin.com/pulse/airflow-lesson-1-triggerdagrunoperator-siddharth-anand

+0

ええ、triggerDagRunOpを使用してDAG間の依存関係を処理することはできますが、お互いに依存するDAGが多い場合は手間がかかります。この機能がAirflowにないようです。開発者がこの方向に向かって計画しているかどうかは分かりますか? – ozw1z5rd

+0

@ ozw1z5rd https://cwiki.apache.org/confluence/display/AIRFLOW/Roadmapに行くか、ギターかエアフローメーリングリストで質問してください。 – nono

+0

良いアイデアだけど、私はすでに成功していないと頼んだ。 – ozw1z5rd

関連する問題