【问题标题】:Airflow: Re-run DAG from beginning with new schedule气流:从新计划开始重新运行 DAG
【发布时间】:2019-11-18 14:23:44
【问题描述】:

背景故事:我每天都在运行 Airflow 作业,start_date 是 2019 年 7 月 1 日。收集的作业从第三方请求每天的数据,然后将这些数据加载到我们的数据库中。

在成功运行了几天后,我意识到第三方数据源每个月只刷新一次数据。因此,我只是每天下载相同的数据。

那时,我将 start_date 更改为一年前(以获取前几个月的信息),并将 DAG 的时间表更改为每月运行一次。

我如何(在气流 UI 中)完全重新启动 DAG,以便它识别我的新 start_date 和计划,并像 DAG 是全新的一样运行完整的回填?

(我知道可以通过命令行请求此回填。但是,我没有命令行界面的权限,并且无法访问管理员。)

【问题讨论】:

    标签: python kubernetes airflow airflow-scheduler


    【解决方案1】:

    在 Web 界面中单击相关作业的 Dag Runs 列中的绿色圆圈。这会将您带到所有成功运行的列表。

    勾选列表标题左上角的复选标记以全选 实例,然后在其上方的菜单中选择“已选择”,然后在下拉菜单中选择“删除”。这应该清除所有现有的 dag 运行实例。

    如果您的 Airflow 实例上未启用 catchup_by_default,请确保在 DAG 上设置 catchup=True,直到它完成追赶。

    【讨论】:

    • 这行得通并且是正确的。我不仅需要清除,还需要删除任务运行。感谢您的洞察力
    • 听起来这将重新运行所有 DagRuns,包括已经运行的那些。有没有办法只在新开始日期和旧开始日期之间运行新任务?
    • 有没有办法在不删除之前的 DAG 运行的情况下再次运行它?我正在尝试一些数据存储策略,我想看看 DAG 运行的时间是否随它而变化。毕竟我想提高处理时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多