TGViewer
Data Apps Design Data Apps Design @data_apps · 2.08K subscribers
Post #363 1.21K
🔺 Рецепт Airflow DAG - а так ли правильно мы его готовим?

#orchestration

За многие годы Airflow стал де-факто стандартом в области управления цепочками взаимосвязанных задач.

Хотя сам инструмент позиционируется как полноценное решение для построения пайплайнов данных, мною он всегда рассматривался только как оркестратор (дирижер, раздающий задачи). Решать эти задачи мною призывались специализированные инструменты:

— Processing: curl, jq, awk, sed
— File storage: S3, MinIO
— Transformations: dbt + DBMS (Clickhouse, Snowflake, ...)
— Alerts: Slack, Telegram


🔺 Дам пример: перед нами задача — регулярно получать выгрузки из REST-сервиса для аналитики в Clickhouse.

Вся соль DAG в том, какими инструментами и набором шагов мы решим эту задачу. Сравните

Подход #1:

20 разных endpoints (справочники, факты)
— DAG с PythonOperator на каждый endpoint, request с обработкой ответа
— Вставка результата (JSON) в MongoDB как документ
— Создание целевых таблиц в Clickhouse (SQL = CREATE TABLE ...)
Предобработка данных (типы, название колонок, порядок), возможно в pandas
— Вставка в целевые таблицы (INSERT loop = медленно)

И подход #2:

Однострочный bash-скрипт с параметрами curl ${ENDPOINT} | jq | s3 copy ${S3_BUCKET_PATH} -
Конфиг в yaml с параметрами для 20 endpoints
— Генерация DAG по шаблону BashOperator на основе yaml config
— Запись результатов в стиле Extract - Load в S3
— Чтение из Clickhouse с использованием S3 table engine (с чтением схемы schema inference)


🔹 В качестве критериев для сравнения используйте:

Простота конфигурации и гибкость (endpoint: добавить, убрать, применить фильтр, записать в другой S3 bucket, выполнить полный пересчет)
Быстрота (скорость работы, устойчивость к росту объема данных)
Принцип EL = все трансформации в DWH (никаких трансформаций вне DWH)
Устойчивость к изменениям и проблемам (какие точки отказа? сколько их?)
— Поддержка Schema Evolution (меняются атрибуты, типы данных в выгрузке - будет ли ошибка? требуются ли ручные действия?)


Хочется разразиться целой публикацией на Хабр на этот счет: обзор возможностей, эволюция развития инструмента, лучшие практики (и плохие тоже) и их рационализация. Дайте реакций, и это случится.

🔻 А что вы думаете насчет Airflow и рецептов DAGs? Какого подхода придерживаетесь?


🌐 @data_apps | Навигация по каналу
  • 🔥 29
  • 👍 9
  • ❤ 4
More from @data_apps
  1. Aug 25, 2026🔸 Меня заблокировал Cursor Сообщение: Your Cursor account was closed following an account…
  2. Feb 27, 2026✅ 3 ОФФЕРА, мои мысли и рекомендации по поиску работы в 2026 в Data и IT в целом Салют! Чу…
  3. Feb 6, 2026Эксперимент успешный 😌 Чек-лист: https://gist.github.com/kzzzr/e49b7e0b2af01e4e1dbc57102d…
  4. Feb 6, 2026👀 DataLens: Бесплатная сказка закончилась. Кейс миграции на Superset (Open Source BI) 1 м…
  5. Feb 2, 2026😘 Открываю доступ к закрытым записям цикла Designing Modern Data Apps Всем привет! 🟡 Это…
  6. Jan 22, 2026☄ Открыт к предложениям: Staff Data Engineer / Data Platform Lead За 11+ лет я прошел путь…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →