Airflow 2.1.3 Timezone时区问题

在Airflow 2.1.3中遇到时区问题,当仅配置`airflow.cfg`文件时,调度时间会显示为UTC+8小时。解决方法包括在DAG的`start_date`设置时区或通过修改模板变量`{{ ds }}`,如将`{{ ds }}`转换为`{{ execution_date.in_timezone("Asia/Shanghai").strftime("%Y-%m-%d") }}`。此外,可以使用Airflow的udm功能来调整`execution_date`时区。
摘要由CSDN通过智能技术生成

Airflow 2.1.3 Timezone时区问题

  1. airflow.cfg 文件中配置
default_timezone = Asia/Shanghai
default_ui_timezone = Asia/Shanghai
  1. 如果只配置上面,则实际调度时间会+8h,即schedule_interval时间为UTC。修改DAG中start_date时区可解决
    'start_date': days_ago(1).replace(tzinfo=pendulum.timezone("Asia/Shanghai"))
  2. 修改了上面的start_date时区,但是execution_date时区依然是UTC,例如 { { ds }} 时间会比调度时间-8h,需要修改execution_date时区
  3. 修改execution_date时区有几种方法:
  • 直接修改
    ‘{ { ds }}’ 改为 ‘{ { execution_date.in_timezone(“Asia/Shanghai”).strftime(“%Y-%m-%d”) }}’
  • Airflow udm,示例如下
from datetime import datetime
from airflow import DAG

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值