如何向 Airflow 添加新的 DAG?
Posted
技术标签:
【中文标题】如何向 Airflow 添加新的 DAG?【英文标题】:How to add new DAGs to Airflow? 【发布时间】:2017-12-04 23:44:59 【问题描述】:我在名为tutorial_2.py
的文件中定义了一个DAG(实际上是airflow
教程中提供的tutorial.py
的副本,除了dag_id
更改为tutorial_2
)。
当我查看未修改的默认airflow.cfg
(位于~/airflow
)时,我看到dags_folder
设置为/home/alex/airflow/dags
。
我做cd /home/alex/airflow; mkdir dags; cd dags; cp [...]/tutorial_2.py tutorial_2.py
。现在我有一个与airflow.cfg
中设置的路径匹配的dags
文件夹,其中包含我之前创建的tutorial_2.py
文件。
但是,当我运行 airflow list_dags
时,我只得到与默认教程 DAG 对应的名称。
我想让tutorial_2
出现在我的 DAG 列表中,以便我可以开始与之交互。 python tutorial_2.py
和 airflow resetdb
都没有导致它出现在列表中。
我该如何补救?
【问题讨论】:
【参考方案1】:我认为这是因为您还没有导出AIRFLOW_HOME
。
尝试做:
AIRFLOW_HOME="/home/alex/airflow/dags" airflow list_dags
。
如果这不起作用,请执行两个步骤
export AIRFLOW_HOME="/home/alex/airflow/dags"
airflow list_dags
我相信这应该有效。试试看?
【讨论】:
这应该是正确的答案,但需要注意的是您可能还需要检查和更正airflow.cfg
中的airflow_home
和dags_folder
变量。我仍然不清楚为什么需要三个不同的变量。参看。 here.【参考方案2】:
据我了解,AIRFLOW_HOME
应该链接到存储airflow.cfg
的目录。然后,airflow.cfg
可以应用并将 dag 目录设置为您放入其中的值。
重要的一点是:如果你的AIRFLOW_HOME
没有设置,airflow.cfg
是没用的
【讨论】:
正是皮埃尔所说的。^【参考方案3】:问题是您的目录中可能存在两个气流配置,因此请检查 /root/airflow/dags,如果是,则需要更改两个气流.cfg 中的 dags_folder 路径
【讨论】:
【参考方案4】:我可能正在使用最新的气流,命令已更改。对我有用的是:
export AIRFLOW_HOME="~/airflow"
然后运行airflow dags list
【讨论】:
以上是关于如何向 Airflow 添加新的 DAG?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Python 在 Airflow 中成功触发另一个 DAG 时触发 DAG?
将 Airflow 运行 id、dag id、执行日期等变量导出到 Bigquery 表
如何使用 TriggerDagRunOperator 触发 Airflow -dag