Airflow 为什么每天dag的气流会跳过一天?

Airflow 为什么每天dag的气流会跳过一天?,airflow,airflow-operator,Airflow,Airflow Operator,我有一个新创建的每日dag,我昨天(1月25日)设置了它,当它被气流加载后,我可以看到它运行了一次(计划的\u 2021-0124T000:00:00+00:00),然后我手动触发它一次,看看它是否正常工作(手动的\u 2021-01-25) 现在时间是UTC 1月26日08:24。但我没有看到任何运行01-25。我使用了下一次执行的气流dag,发现气流计划直接执行01-26的dag,可能在UTC 01-27 00:00执行。所以它将完全跳过01-25 我想知道为什么会有这种行为?这背后有什么原

我有一个新创建的每日dag,我昨天(1月25日)设置了它,当它被气流加载后,我可以看到它运行了一次(计划的\u 2021-0124T000:00:00+00:00),然后我手动触发它一次,看看它是否正常工作(手动的\u 2021-01-25)

现在时间是UTC 1月26日08:24。但我没有看到任何运行01-25。我使用了下一次执行的气流dag,发现气流计划直接执行01-26的dag,可能在UTC 01-27 00:00执行。所以它将完全跳过01-25

我想知道为什么会有这种行为?这背后有什么原因吗


这是气流的一个特点,一开始我也很困惑。从:

如果以一天的计划间隔运行DAG,则执行日期为2019-11-21的运行将在2019-11-21T23:59后立即触发

让我们重复一下,调度程序在开始日期之后的一个调度时间间隔,即周期结束时运行作业


这是气流的一个特点,一开始我也很困惑。从:

如果以一天的计划间隔运行DAG,则执行日期为2019-11-21的运行将在2019-11-21T23:59后立即触发

让我们重复一下,调度程序在开始日期之后的一个调度时间间隔,即周期结束时运行作业


这是气流中最难掌握的概念。在您得到这个之后,系统的其余部分就相当简单了。但这一设计规范是残酷的,我见过经验丰富的工程师跪在地上,愤怒地抽泣

正如Airflow文档中提到的另一张海报,Airflow会在期末运行您的作业。这是我最容易想象的一个DAG,它有一个每日日程安排。2021年1月1日的DAG运行日期的开始时间为00:01 AM,直到2021年2月1日00:01 AM才会执行

这其中令人困惑的部分是为什么!?当你停下来思考为什么要写气流时,它开始变得有意义了。此执行模式可确保运行日期01/01/2021的数据在业务流程管道运行以对该数据执行操作时完整且准备就绪。将其视为一个业务流程。如果您是一名业务分析师,并于2021年2月1日开始工作,您将查看前一天的数据,而不是今天的数据。今天的数据尚未收集

同样的模式也适用于每周或每月的间隔。该周或该月的数据要到期末才会准备好采取行动

当您开始使用宏和jinja模板时,这也更有意义


希望它现在像泥浆一样清晰。

这是气流中最难掌握的概念。在您得到这个之后,系统的其余部分就相当简单了。但这一设计规范是残酷的,我见过经验丰富的工程师跪在地上,愤怒地抽泣

正如Airflow文档中提到的另一张海报,Airflow会在期末运行您的作业。这是我最容易想象的一个DAG,它有一个每日日程安排。2021年1月1日的DAG运行日期的开始时间为00:01 AM,直到2021年2月1日00:01 AM才会执行

这其中令人困惑的部分是为什么!?当你停下来思考为什么要写气流时,它开始变得有意义了。此执行模式可确保运行日期01/01/2021的数据在业务流程管道运行以对该数据执行操作时完整且准备就绪。将其视为一个业务流程。如果您是一名业务分析师,并于2021年2月1日开始工作,您将查看前一天的数据,而不是今天的数据。今天的数据尚未收集

同样的模式也适用于每周或每月的间隔。该周或该月的数据要到期末才会准备好采取行动

当您开始使用宏和jinja模板时,这也更有意义


希望这现在已经很清楚了。

这实际上是在2.0.1中修复的Airflow 2.0.0版本中的一个错误:

这实际上是在2.0.1中修复的Airflow 2.0.0版本中的一个错误:

顺便说一句,Github存在一个问题,可以选择更改此功能,使其在周期开始(1/01/2021)运行。希望他们今年能把这项工作推出去。@Gabe很有意思。看起来这会让人更加困惑。目前使用jinja插件和宏的方式非常好,只是当你第一次遇到它时并不完全直观。误解了OP的问题。忽略答案。顺便说一句,Github存在一个问题,它可以选择更改此功能,使其在周期开始时(2021年1月1日)运行。希望他们今年能把这项工作推出去。@Gabe很有意思。看起来这会让人更加困惑。目前使用jinja插件和宏的方式非常好,只是当你第一次遇到它时并不完全直观。误解了OP的问题。忽略答案。你可能想读你可能想读