Какие операторы Airflow самые популярные
Что проверяют
Работали ли вы с Airflow в актуальных версиях или помните его по старым туториалам. Интервьюеру важно, понимаете ли вы, что оператор описывает задачу, а тяжёлые вычисления не должны идти на воркере. Следом спрашивают про сенсоры и про передачу данных между задачами через XCom.
Как отвечать
Перечисляйте операторы группами и сразу с назначением:
PythonOperatorи TaskFlow API: в новом коде вместо явного оператора пишут функцию с декоратором@task, возвращаемое значение уходит в XCom само. Есть варианты@task.virtualenvи@task.branch;BashOperator: запуск скриптов и CLI, команда поддерживает Jinja-шаблоны вроде{{ ds }};EmptyOperator: заглушка для точек ветвления и синхронизации. СтарыйDummyOperatorдавно устарел, в Airflow 3 его нет;SQLExecuteQueryOperator: SQL в любой базе через соединение. Он заменил отдельныеPostgresOperator,MySqlOperatorи подобные, объявленные устаревшими;KubernetesPodOperator: задача в отдельном контейнере. Для ML это основной способ запустить обучение со своими зависимостями и ресурсами, не нагружая воркер;- сенсоры:
FileSensor,ExternalTaskSensor, сенсоры объектов в S3 и аналогах. Ждут данных или завершения другого DAG. В режимеrescheduleили сdeferrable=Trueони не держат слот воркера; TriggerDagRunOperator: запускает другой DAG, например переобучение после обновления витрины;- операторы провайдеров:
SparkSubmitOperator, операторы облачных хранилищ и DWH, трансферы между системами.
Упомяните, что в Airflow 3 базовые операторы переехали в пакет apache-airflow-providers-standard с импортом из airflow.providers.standard.operators, а SubDAG удалены в пользу TaskGroup.
Где спотыкаются
Гоняют через XCom датафреймы и модели. XCom хранится в метабазе и рассчитан на небольшие значения: пути к файлам, идентификаторы, метрики.
Пишут обработку данных прямо в PythonOperator. На больших объёмах воркер падает по памяти, работу правильнее отдать Spark, базе или поду в Kubernetes.
Держат сенсоры в режиме poke часами. Каждый такой сенсор занимает слот, и при десятке ожиданий очередь встаёт.