我正在通过docker在GCP上的VM内运行气流(1.10.1)。已经更改了我的VM的本地时间,并且配置(airflow.cfg)也设置了我所在国家/地区的default_zone(America / Sao_Paulo),但它仍在主屏幕上的UTC时间继续,因此处理也在UTC中完成。你还能做别的吗?
答案 0 :(得分:2)
默认启用对时区的支持。 Airflow在内部和数据库中的UTC中存储日期时间信息。它允许您使用时区相关的计划来运行DAG。目前,Airflow尚未在用户界面中将其转换为最终用户的时区。在那里它将始终以UTC显示。而且,不会转换运算符中使用的模板。
时区信息已公开,由DAG的编写者进行相应处理。
答案 1 :(得分:1)
作为给定答案的补充,我能够通过以下代码根据DAG中的时区更改执行:
import pendulum
default_args = {
'owner': 'airflow',
'start_date': pendulum.datetime(year=2019, month=7, day=26).astimezone('America/Sao_Paulo'),
'depends_on_past': False,
'email': ['airflow@airflow.com'],
'email_on_failure': False,
'email_on_retry': False,
'depends_on_past': False,
# If a task fails, retry it once after waiting
# at least 5 minutes
'retries': 1,
'retry_delay': timedelta(minutes=5),
'on_failure_callback': slack_msg
}
dag = DAG(
dag_id=nm_dag,
default_args=default_args,
schedule_interval='40 11 * * *',
dagrun_timeout=timedelta(minutes=60)
)
答案 2 :(得分:0)
您可以通过在气流配置文件或运行时的环境变量中通过在变量“ AIRFLOW__CORE__DEFAULT_TIMEZONE ”中设置正确的时区值来进行更改。 / p>