gpt4 book ai didi

airflow - 为什么 Airflow 在不重命名 dag 的情况下更改 start_date?

转载 作者:行者123 更新时间:2023-12-05 05:10:03 25 4
gpt4 key购买 nike

我是一名数据工程师,经常与 Airflow 打交道。

当使用新的开始日期重新部署 dag 时,最佳实践如 here 中所示。 :

Don’t change start_date + interval: When a DAG has been run, the scheduler database contains instances of the run of that DAG. If you change the start_date or the interval and redeploy it, the scheduler may get confused because the intervals are different or the start_date is way back. The best way to deal with this is to change the version of the DAG as soon as you change the start_date or interval, i.e. my_dag_v1 and my_dag_v1. This way, historical information is also kept about the old version.

然而,在删除所有之前的 DAG 和任务运行后,我尝试重新部署一个具有新开始日期的 Dag。它按预期(使用新的开始日期)工作了一天,然后又开始使用旧的

这是什么原因?如果可以,请深入。

最佳答案

Airflow 在表 dag_run 中维护有关过去运行的所有信息。

当您清除之前的 dag 运行时,这些条目将从数据库中删除。因此,airflow 将这个 dag 视为一个新的 dag,并在指定的时间开始。

Airflow 检查最后一个 dag 执行时间(上次运行的 start_date)并添加您在 schedule_interval 中指定的 timedelta 对象。

如果您在清除 dag 运行后仍然遇到困难,您可以做一些事情:

  1. 按照建议重命名 dag。
  2. 清除所有 dag 运行,让 dag 暂停。创建一个 dag run,然后打开 dag。它将在之后的预定时间运行。
  3. 最好的方法是在 schedule_interval 中使用 crontab 表达式。

关于airflow - 为什么 Airflow 在不重命名 dag 的情况下更改 start_date?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57096386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com