Ночной пайплайн «Гонца» вырос. Он забирает заказы, чистит их, собирает факт доставок, пересобирает витрины и проверяет результат. Пять шагов, пять скриптов, и запускает их cron: первый в 06:00, второй в 06:20, третий в 06:40, на всякий случай с запасом. Однажды выгрузка шла 35 минут вместо пятнадцати, и чистка в 06:20 обработала половину заказов. В другую ночь упала загрузка, и об этом узнали в 10 утра, когда Отто спросил, куда делся вчерашний день.
Музыканты с будильниками
Представь оркестр без дирижёра. Каждому музыканту выдали будильник: скрипки вступают в 20:00, виолончели в 20:03, трубы в 20:07. Пока всё идёт по нотам, это работает. Но если скрипки начали на минуту позже, трубы всё равно вступят в 20:07, и выйдет какофония. А если первая скрипка заболела, остальные доиграют концерт без неё и даже не заметят.
Дирижёр устроен иначе. Он даёт трубам знак, когда скрипки закончили, а не когда пробило 20:07. Если кто-то сбился, он останавливает и повторяет фрагмент. И после концерта точно знает, что прошло хорошо, а что нет.
Cron это будильники. Оркестратор это дирижёр.
Чего не умеет cron
Cron запускает команду по расписанию и больше ничего не знает. Для одного скрипта этого хватает. Для пайплайна из нескольких шагов не хватает четырёх вещей.
- Зависимостей. Cron не знает, что чистка должна начаться после выгрузки, а не в 06:20. Поэтому расписание ставят с запасом и надеются, что запаса хватит.
- Повторов. Сеть моргнула, база на минуту недоступна, шаг упал. Cron не попробует ещё раз.
- Истории. Какие ночи прошли успешно, сколько шёл каждый шаг, где упало? Cron не помнит.
- Реакции на сбой. Упал первый шаг, а остальные всё равно запустятся по расписанию на неполных данных, и никто об этом не узнает.
Оркестратор
Оркестратор закрывает все четыре дыры. Ты описываешь пайплайн целиком: какие в нём шаги, в каком порядке, по какому расписанию, сколько раз повторять. А оркестратор:
- запускает каждый шаг, когда закончились те, от кого он зависит;
- повторяет упавший шаг через несколько минут;
- не запускает шаги, у которых упал предшественник, и помечает весь запуск красным;
- хранит историю каждого запуска и показывает её в интерфейсе.
Самый распространённый оркестратор в дата-инженерии это Apache Airflow. Его сделали в Airbnb в 2014 году, позже он стал проектом Apache. В этом блоке мы работаем с Airflow 3, который вышел в 2025 году.
урок из курса
Урок из курса «Data Engineering». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.