Зачем использовать CustomOperator вместо PythonOperator в Apache Airflow?

Поскольку я использую Apache Airflow, я не могу понять, зачем кому-то создавать CustomOperator вместо PythonOperator. Разве это не привело бы к тем же результатам, если бы я использовал функцию python внутри PythonOperator вместо CustomOperator?

Было бы здорово, если бы кто-то знал, каковы различные варианты использования и лучшие практики! !

Спасибо большое за вашу помощь


person Antoine Krajnc    schedule 04.01.2020    source источник


Ответы (1)


Оба оператора, хотя и похожи, на самом деле находятся на разных уровнях абстракции, и в зависимости от вашего варианта использования один может быть лучше другого.

Код, определенный в CustomOperator, может легко использоваться несколькими группами DAG. Если у вас много групп DAG, которым необходимо выполнять одну и ту же задачу, возможно, имеет смысл предоставить этот код группам DAG через CustomOperator.

PythonOperator является очень общим и лучше подходит для разовых задач, связанных с DAG.

В конце концов, набор операторов по умолчанию, представленный в Airflow, - это просто инструменты. Какой инструмент вы в конечном итоге используете (операторы по умолчанию) или имеет смысл создать свой собственный инструмент (пользовательские операторы), зависит от множества факторов:

  1. Тип задачи, которую вы пытаетесь выполнить.
  2. Кодекс организационных требований, обусловленных политикой или количеством людей, обслуживающих конвейер.
  3. Простой личный вкус.
person Victor    schedule 05.01.2020