2017-02-26 10 views
0

XComを使用していくつかのタスクを通信するDAGをテストする方法を理解しようとしています。XComを使用するApache Airflowタスクをテストする方法

コンソールコマンドでは、DAGからタスクを実行できるだけなので、UI経由でDAGを実行しなくても通信をテストする方法はありますか?

ありがとうございました

答えて

0

ここは私のために働いた方法です。

エアフローWebページには、テストコマンドが何の状態も生成しないか、または保持しないと記載されていても、エアフローテストコマンドの実行が順番に実行されます。

は、基本的には、実行します。タスク1が値を返すか、値を取得し、上に移動する値とその後、タスク2の実行xcom_pullを送信するための方法を使用していますxcom_push

Airflow test my_dag task1 date 
Airflow test my_dag task2 date 

それは私のために働いた。異なるアプローチやその他の質問がある場合は、ご意見ください。

+0

この方法がなぜ機能するかをさらに説明するために、気流はpickleを使用してxcomの値をシリアル化し、データベースに格納します。 '--dry_run'フラグをつけずに' airflow test'を実行すると、 'task1'のxcomを含め、プログラムの実行に関する情報がデータベースに残っています。これは、データベースに多数のテスト実行が含まれないようにしたい場合に問題になります。残念なことに私たちのために、気流は書いている時点でxcomを模倣する良い方法を実際には持っていないので、これはあなたの選択肢です(またはxcomをテスト中に使用しないように書き換える)。 –

関連する問題