为什么在 Apache Airflow 中使用 CustomOperator 而不是 PythonOperator?

Ant*_*jnc 9 airflow airflow-operator

当我使用 Apache Airflow 时,我似乎无法找到为什么有人会创建CustomOperator一个PythonOperator. 如果我在 aPythonOperator而不是 a 中使用 python 函数,它会不会导致相同的结果CustomOperator

如果有人知道什么是不同的用例和最佳实践,那就太好了!!

非常感谢你的帮助

小智 7

这两个运算符虽然相似,但实际上处于不同的抽象级别,并且根据您的用例,一个可能比另一个更适合。

多个 DAG 可以轻松使用 CustomOperator 中定义的代码。如果您有很多 DAG 需要执行相同的任务,那么通过 CustomOperator 将此代码公开给 DAG 可能更有意义。

PythonOperator 非常通用,更适合一次性的 DAG 特定任务。

归根结底,Airflow 中提供的默认运算符集只是工具。您最终使用哪种工具(默认运算符)或创建自己的自定义工具(自定义运算符)是否有意义是由一系列因素决定的选择:

  1. 您尝试完成的任务类型。
  2. 政策或维护管道的人数所需的代码组织要求。
  3. 简单的个人口味。