回填¶
回填是指为过去日期创建 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"}'