gpt4 book ai didi

airflow - 使用每周 Airflow 作业的运行日期的 Eloquent 方法是什么?

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

问题:Airflow 的execution_date 被定义为两次运行之间的时间段的开始。例如,按每周计划运行的 DAG 将在 2018-01-08 T11:00:00 运行,但 execution_date 将是 2018-01- 01 T11:01:00

目标:我每周收到一次文件,文件名称中包含文件日期。为了识别文件,我想使用 Airflow 的 execution_date。但我似乎无法找到一种方法来使用运行日期,而不是使用一段时间内最早的 execution_date

可能的解决方案:

  • 即时修改 execution_date。类似于:context['execution_date'] + timedelta(days=7)。这看起来很老套。
  • 每天运行 DAG,在 DAG 执行图的开头插入一个 ShortCircuitOperator,如果 execution_date 不是预期日期则退出。

欢迎所有建议或建议。这是一个微妙的问题,但会导致我的 ETL 管道出现一些问题。

最佳答案

另一种可能的解决方案?

  • 在您“认为”文件即将到达后,让 DAG 每周运行一次。解析着陆区中的文件名,这将为您提供一堆日期。检查并查看这些日期中的哪些日期在 execution_date + schedule_interval 之间(如果您使用的是 >= 1.8 的 Airflow 版本,则为 next_execution_date)。然后摄取匹配的文件。

我认为使用 execution_date + timedelta(days=7) 有点老套,最好使用 execution_date + schedule_interval,这样如果间隔发生变化就不会有任何问题(我为我的一个 DAGS 这样做)。如果您使用的是较新的 Airflow 版本,那么您可以使用更好的 next_execution_date。

关于airflow - 使用每周 Airflow 作业的运行日期的 Eloquent 方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49660687/

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