Ответ вслух Senior ETL, ELT и Airflow обновлено

Как устроить DAG ежедневной загрузки

Вопрос

Расскажите, как вы устроите в Airflow ежедневную загрузку данных из PostgreSQL сервиса заказов в хранилище с построением витрин.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Образцовый ответ: «DAG ежедневный, catchup задаю явно, ретраи с экспоненциальной паузой. Первая задача выгружает изменения за интервал из реплики, а не из боевой базы, с пулом, ограничивающим параллельные запросы к источнику, и кладёт файлы в сырой слой по партиции даты.

Что должно прозвучать в ответе

  • Расписание, интервалы, явный catchup, ретраи с паузой

  • Выгрузка за интервал в сырой слой, без нагрузки на прод (реплика, ограничение параллелизма)

  • Проверки качества после загрузки: объём, ключи, свежесть

  • Трансформации в хранилище (dbt), идемпотентная перезапись

  • Зависимость витрин по готовности данных, а не по времени

  • SLA, алерты, подключения и секреты вне кода

Что могут спросить следом

  • Как вы будете перегружать данные за прошлый месяц?
  • Что сделаете, если выгрузка стала идти 6 часов?

Разбор

Образцовый ответ: «DAG ежедневный, catchup задаю явно, ретраи с экспоненциальной паузой. Первая задача выгружает изменения за интервал из реплики, а не из боевой базы, с пулом, ограничивающим параллельные запросы к источнику, и кладёт файлы в сырой слой по партиции даты. Дальше загрузка в staging и проверки: число строк в разумных пределах, уникальность ключей, отсутствие NULL в обязательных полях. Если проверки падают, витрины не строятся и приходит алерт. Трансформации запускаю как dbt-модели в хранилище, все с перезаписью партиции, поэтому бэкфилл это просто clear за нужные даты. Витрины зависят от готовности данных через assets или сенсор, а не от времени. Пароли в Connections или во внешнем хранилище секретов. Есть SLA на готовность витрин к 8 утра с алертом».

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.