Самописный оператор обычно реализуют наследованием от BaseOperator и методом execute(context). BashOperator лишь запускает shell-команду и не является обязательной основой кастомного оператора.
Как был реализован самописный оператор Airflow: через BashOperator?
Самописный оператор обычно реализуют наследованием от BaseOperator и методом execute(context). BashOperator лишь запускает shell-команду и не является обязательной основой кастомного оператора.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Самописный оператор обычно реализуют наследованием от BaseOperator и методом execute(context). BashOperator лишь запускает shell-команду и не является обязательной основой кастомного оператора.
Если задача сводится к вызову готового CLI, BashOperator может быть достаточен. Когда нужны повторяемые параметры, шаблонизация, интеграция с Connection/Hook и единая обработка ошибок, полезен отдельный оператор.
Не создавайте соединения и не выполняйте тяжёлую работу в конструкторе: DAG многократно парсится планировщиком. В рассказе о проекте объясните реальное устройство и причину выбора, отделяя пользовательский оператор от shell-скрипта, который он мог запускать.