跨 DAG 重用任务(运算符)

Ass*_*rtz 5 airflow

我正在探索 AirFlow 作为工作流执行引擎。

我喜欢它非常灵活,允许使用多个运算符,例如 Python 函数。然而,我担心我可能会错过一些基本的东西——任务重用。我想在多个 DAG 中运行现有运算符,而无需重新定义它们。

据我所知 - 这是不支持的。我错了吗?如果是这样,如果有人能给我指出解决方案,我会很高兴。

我想到的唯一(尴尬的)解决方案是为每个 Operator 提供一个虚拟 DAG,然后使用DagRunOperator在这些虚拟 DAG 之上构建我的 DAG 。

非常感谢!

Jos*_*osh 1

实现此目标的推荐方法是创建您自己的 Airflow 插件。

\n

(来自插件上的 Airflow 文档

\n
\n

Airflow 内置了一个简单的插件管理器,只需将文件拖放到 $AIRFLOW_HOME/plugins 文件夹中即可将外部功能集成到其核心。

\n

插件文件夹中的 python 模块被导入,挂钩、操作符、传感器、宏、执行器和 Web 视图被集成到 Airflow\xe2\x80\x99s 主要集合中并可供使用。

\n
\n

因此,如果您要在插件中创建自定义运算符,您将能够在多个 DAG 中重复使用同一运算符。

\n

这个存储库也可能会有所帮助,因为它有很多 Airflow 插件的示例: https: //github.com/airflow-plugins

\n