回填¶
回填是指為過去日期建立 DAG 執行。Airflow 透過 CLI 和 REST API 提供了實現此目的的機制。您提供一個 DAG、一個開始日期和一個結束日期,Airflow 將根據 DAG 的排程在該範圍內建立執行。
對於沒有基於時間排程的 DAG,回填沒有意義。
控制資料再處理¶
資料再處理行為有三個選項
none - 如果此邏輯日期已有執行,則不再建立,無論其狀態如何
failed - 如果存在執行,且狀態為失敗,則為此日期建立一個新的執行
completed - 如果存在執行,且狀態為完成或失敗,則為此日期建立一個新的執行
如果最新執行仍在執行或處於排隊狀態,無論選擇何種再處理行為,我們都不會建立新的執行。
併發控制¶
您可以在回填上設定 max_active_runs,它將控制回填中有多少個 DAG 執行可以併發執行。回填的 max_active_runs 設定獨立於 DAG 的 max_active_runs 設定應用。
執行順序¶
您可以反向執行回填,即先執行最新的。CLI 選項是 --run-backwards。
空執行¶
回填空執行是一個 CLI 選項,它將打印出回填將考慮建立執行的日期。是否實際建立取決於您選擇的再處理行為以及在實際執行回填時該範圍內任何現有執行的狀態。
示例:¶
airflow backfill create --dag-id tutorial \
--start-date 2015-06-01 \
--end-date 2015-06-07 \
--reprocessing-behavior failed \
--max-active-runs 3 \
--run-backwards \
--dag-run-conf '{"my": "param"}'