【问题标题】:Airflow python start date format气流python开始日期格式
【发布时间】:2020-11-17 08:18:13
【问题描述】:

我正在使用气流开始日期:

from airflow.utils import dates

...

"start_date": dates.days_ago(3)

结果是: 2020-11-14 00:00:00+00:00

我希望 UTC 格式的日期为 2020-11-14 00:00:00

还想将 timedelta(minutes=5) 添加到 2020-11-14 00:00:00

如何使用python(气流)来做到这一点

【问题讨论】:

    标签: python python-3.x datetime airflow airflow-scheduler


    【解决方案1】:

    考虑使用“datetime”包。它真的很容易使用。

    https://docs.python.org/3/library/datetime.html

    【讨论】:

    • 这可能在原则上起作用;但是,气流在内部使用pendulum(请参阅src),因此查看它可能会有所帮助。
    【解决方案2】:

    首先让我指出start_date 的动态日期是not recommended

    我们建议不要使用动态值作为 start_date,尤其是 datetime.now() 因为它可能会很混乱。任务被触发 一旦周期结束,理论上@hourly DAG 永远不会得到 随着 now() 的移动,到现在一小时后。

    其次,我不明白为什么日期时间或钟摆对你很重要。 start_dateinterval 用于调度程序来发挥它的魔力。因此,您需要根据所需的规范提供它们。

    你没有写任何关于你真正想做的事情的信息。我假设您真正追求的是如何利用start_date 在您的任务中使用。为此,您可以使用任何您想要的类型。 Airflow 提供了一些钟摆类型的Macros

    请注意,您可以通过以下方式获取任务所需的格式:

    EXEC_DATE = "{{ execution_date.strftime('%Y-%m-%d %H:%M:S') }}"
    

    如果你想添加增量,你可以这样做:

    EXEC_DATE = "{{ (execution_date + macros.timedelta(minutes=5)).strftime('%Y-%m-%d %H:%M:S') }}"
    

    【讨论】:

      猜你喜欢
      • 2021-03-19
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      • 1970-01-01
      • 2018-04-10
      • 1970-01-01
      • 2015-10-19
      • 2012-08-10
      相关资源
      最近更新 更多