web-dev-qa-db-ja.com

エアフローサブダグの一部を再実行します

私はサブダグを含む毎日のダグを持っています。サブダグには、T1からT5までの5つのタスクがあり、これらは順番に実行する必要があります(例:T1 >> T2 >> T3 >> T4 >> T5)

ダグは数日間正常に実行されますが、T4のバグを発見しました。バグを修正し、以前のすべての日についてT4とT5だけを再実行したいと思います。これらの手順はT4-T5よりもはるかに時間がかかるため、T1-T3を再実行しないことが重要です。

私が試したことは失敗しました:

  1. T4を選択し、ダウンストリームをクリア+再帰的-何も起こりません。ダグツリービューでは、サブダグ内のT4とT5がクリアされていても、サブダグは「成功」として表示されます。
  2. T4を選択し、ダウンストリーム+再帰をクリアし、サブダグを選択し、そのタスクだけをクリアします-これにより、T1-T3が成功としてマークされていても、サブダグ全体(T1-T5)が再実行されます
  3. T4を選択し、downstream + recursiveをクリアし、subdagを選択し、runをクリックします-#2と同じです。サブダグ全体を再実行します。
  4. T4を選択し、ダウンストリーム+再帰をクリアし、サブダグを手動で「実行中」状態に設定します。何も起こりません。ツリービューには、「実行中」状態のサブダグが表示されますが、実際にはタスクは実行されません。

これは、サブダグの一部を再実行しようとしたときにのみ問題になるようです。通常のダグに多数のタスクがある場合、通常は途中でタスクを選択し、クリアダウンストリーム+再帰を選択すると、その時点からダグが再実行されます。

任意の提案をいただければ幸いです。

12
stipe108

SubDAG内で失敗したタスクを再開できます。方法は次のとおりです。

  • SubDAGを拡大し、失敗したタスクのステータスをクリアします。
  • メインDAGに戻り、subDAGを選択します。
  • 再帰的および/またはダウンストリームのチェックを外します。
  • SubDAGのステータスをクリアします。
9
Toan Tran

私はこのコマンドを使用してサブダグを正常に実行します。誰かに役立つことを願っています。

エアフローバックフィルdag_name.subdag_name-s 2018-05-31 -e 2018-05-31 --reset_dagruns

0
kain