Files
airflow-greenplum/docs/dag_execution_order.md
T
ddadmin 35144e49f6 docs: согласованы руководства загрузок и учебный маршрут
Руководства STG/ODS/DDS/DM сверены с действующими SQL и DAG,
ожидания учебных заглушек связаны с ТЗ. Самопроверка заданий
отделена от проверок разработки и исторических планов.

Для dim_routes закреплено обновление описательных полей только
у открытых версий. SQL, DAG, DDL и настройки стенда не менялись.

Проверки: make lint; make test (4 passed, 14 skipped); карта;
292 локальные ссылки; маршрут чтения и карта в Chromium.
Живой ETL не запускался.
2026-09-20 15:53:39 -04:00

4.9 KiB

Порядок запуска DAG

Все загрузочные DAG в стенде запускаются вручную (schedule=None). Завершение одного слоя не запускает следующий автоматически. Подготовка Docker и источника находится в быстром старте.

Создание таблиц

Перед первой загрузкой выполните по порядку:

  1. bookings_stg_ddl создает STG и внешние таблицы *_ext для чтения через PXF.
  2. bookings_ods_ddl создает типизированные таблицы ODS.
  3. bookings_dds_ddl создает измерения и факт DDS.
  4. bookings_dm_ddl создает витрины DM.

Альтернатива четырем запускам: make ddl-gp. DDL создает структуру; для наполнения нужны отдельные загрузки. В заданиях таблицы и задачи уже подготовлены, поэтому перед каждым повторным запуском загрузки применять DDL не требуется.

Проход данных по слоям

Запускайте следующий DAG после успешного завершения всех задач предыдущего. Эта последовательность показывает зависимости загрузок; связи строк и зерно объектов смотрите на карте, открытой локально.

Порядок DAG и руководство Что меняется в данных
1 bookings_to_gp_stage Генератор добавляет учебный день в Bookings; STG получает инкременты транзакций и полные снимки справочников с _load_id = run_id STG
2 bookings_to_gp_ods Resolver выбирает общий STG-батч справочников; их снимки заменяются целиком. Транзакционные загрузки читают дельту STG по _load_ts и обновляют строки по бизнес-ключу
3 bookings_to_gp_dds Сначала выполняются загрузки измерений, затем факт: вставляются новые пары (ticket_no, flight_id), у существующих обновляются цена, место и признак посадки
4 bookings_to_gp_dm sales_report пересчитывает полные агрегаты дат, затронутых изменениями факта; поведение остальных витрин задано в ТЗ

На исходной main готовы весь STG, семь таблиц ODS, календарь, аэропорты, тарифы, факт и sales_report. Загрузки и DQ остальных объектов являются заданиями. Успех этих задач с SELECT 1; оставляет таблицы пустыми. У факта до реализации измерений могут быть NULL в passenger_sk, route_sk и airplane_sk.

Повторный запуск и проверка задания

Чтобы получить следующий учебный день, повторите цепочку STG → ODS → DDS → DM. Когда проверяете правку SQL своего слоя на уже загруженных источниках, начните с этого слоя; новый STG запустит генератор еще раз. Подробности выбора батча и повторного запуска находятся в руководстве слоя.

После реализации измерений обычный повтор DDS не заполнит старые SK факта. Выполните пересчет по ТЗ, затем обновите DM.

Для самопроверки задания откройте «Запуск и проверка». bookings_validate запускайте отдельно от загрузок: дождитесь всего DAG и успешного validate_dds.scd2_restore перед следующей записью в хранилище. Тест SCD2 временно меняет данные и восстанавливает их из копии.