Подойдёт Python-задача TaskFlow с @task: ETL-логика оформляется функцией, а параметры и зависимости задаются в DAG. Для этой постановки отдельный Kubernetes pod не обязателен.
Как выбрать задачу Airflow для ежедневного Python ETL?
Подойдёт Python-задача TaskFlow с @task: ETL-логика оформляется функцией, а параметры и зависимости задаются в DAG. Для этой постановки отдельный Kubernetes pod не обязателен.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Ежедневно нужно выполнить Python-функцию: прочитать небольшой файл из объектного хранилища, проверить схему, преобразовать строки и записать результат в другую папку. Задача помещается на одном worker; повтор не должен дублировать итоговые данные. Какой подход Airflow выбрать?
Ответ
Подойдёт Python-задача TaskFlow с @task: ETL-логика оформляется функцией, а параметры и зависимости задаются в DAG. Для этой постановки отдельный Kubernetes pod не обязателен.
Вход связывают с интервалом данных запуска, а выход пишут по детерминированному ключу с безопасной заменой или проверкой завершения. Большой набор строк не передают через XCom — возвращают ссылку и небольшие метаданные. Credentials получают из Connections/секретного хранилища. Если выполнение потребует другого окружения, ресурсов или изоляции, выбор оператора пересматривают; название оператора само по себе не обеспечивает идемпотентность.
Источник: airflow.apache.org.