【问题标题】:Reusing Tasks (operators) across DAGs跨 DAG 重用任务(算子)
【发布时间】:2019-05-20 15:13:08
【问题描述】:

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

我喜欢它非常灵活的事实,它允许多个运算符,例如 Python 函数。但是,我担心我可能会遗漏一些基本的东西——任务重用。我想在多个 DAG 中运行现有的运算符,而不必重新定义它们。

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

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

非常感谢!

【问题讨论】:

    标签: airflow


    【解决方案1】:

    推荐的实现方式是创建您自己的 Airflow 插件。

    (来自Airflow Documentation on Plugins

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多