【发布时间】:2018-06-30 21:57:19
【问题描述】:
在将新的 dag 部署到气流中时,是否遵循任何最佳做法?
我在 google 论坛上看到几个 cmets 说 dag 保存在 GIT 存储库中,并且会定期同步到气流集群中的本地位置。
关于这种方法,我有几个问题
非常感谢这里的任何帮助。如果您需要更多详细信息,请告诉我?
【问题讨论】:
在将新的 dag 部署到气流中时,是否遵循任何最佳做法?
我在 google 论坛上看到几个 cmets 说 dag 保存在 GIT 存储库中,并且会定期同步到气流集群中的本地位置。
关于这种方法,我有几个问题
非常感谢这里的任何帮助。如果您需要更多详细信息,请告诉我?
【问题讨论】:
这是我们为团队管理它的方式。
首先在命名约定方面,我们的每个 DAG 文件名 都与 DAG 本身(包括 DAG 版本)内容中的 DAG Id 匹配。这很有用,因为最终它是您在 Airflow UI 中看到的 DAG Id,因此您将确切知道每个 DAG 背后使用了哪个文件。
这样的 DAG 示例:
from airflow import DAG
from datetime import datetime, timedelta
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2017,12,05,23,59),
'email': ['me@mail.com'],
'email_on_failure': True
}
dag = DAG(
'my_nice_dag-v1.0.9', #update version whenever you change something
default_args=default_args,
schedule_interval="0,15,30,45 * * * *",
dagrun_timeout=timedelta(hours=24),
max_active_runs=1)
[...]
DAG 文件的名称为:my_nice_dag-v1.0.9.py
好处
【讨论】:
from airflow.models import Variable 调用这些变量,然后使用 Variable.get('my_variable_name')