chore(bookings): полировка эталонного среза — код, документация, ANALYZE
- Зачем:
- подготовка эталонного пайплайна к курсовой: код должен быть чистым,
документация — актуальной, все слои — консистентными.
- Что:
- добавлен ANALYZE во все 5 DM load-скриптов (был в STG/ODS/DDS, пропущен в DM).
- README актуализирован: добавлен DM-слой в быстрый старт, список DAG'ов,
исправлен дефолт BOOKINGS_JOBS (2→1), добавлены примеры запросов DM.
- удалены остатки CSV-пайплайна: CSV_DIR/CSV_ROWS из docs/stack.md.
- docs/stack.md: исправлен дефолт BOOKINGS_JOBS (2→1).
- убран отладочный комментарий «Исправлено:» в passenger_loyalty_load.sql.
- исправлено форматирование (black) в 4 файлах.
- TODO.md: отмечены пройденные пункты Этапа 1.5.
- Проверка:
- make lint && make test — проходят.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -67,4 +67,10 @@ with DAG(
|
||||
)
|
||||
|
||||
# Линейная цепочка
|
||||
apply_dm_sales_report_ddl >> apply_dm_route_performance_ddl >> apply_dm_passenger_loyalty_ddl >> apply_dm_airport_traffic_ddl >> apply_dm_monthly_overview_ddl
|
||||
(
|
||||
apply_dm_sales_report_ddl
|
||||
>> apply_dm_route_performance_ddl
|
||||
>> apply_dm_passenger_loyalty_ddl
|
||||
>> apply_dm_airport_traffic_ddl
|
||||
>> apply_dm_monthly_overview_ddl
|
||||
)
|
||||
|
||||
@@ -131,7 +131,7 @@ with DAG(
|
||||
load_dm_route_performance,
|
||||
load_dm_passenger_loyalty,
|
||||
load_dm_airport_traffic,
|
||||
load_dm_monthly_overview
|
||||
load_dm_monthly_overview,
|
||||
]
|
||||
|
||||
# Связываем dq с finish
|
||||
|
||||
@@ -35,17 +35,17 @@ def _resolve_stg_batch_id(**context) -> str:
|
||||
Возвращает stg_batch_id из dag_run.conf или вычисляет последний согласованный батч.
|
||||
|
||||
ВНИМАНИЕ: Это значение используется ТОЛЬКО для загрузки snapshot-справочников
|
||||
(airports, airplanes, routes, seats).
|
||||
|
||||
(airports, airplanes, routes, seats).
|
||||
|
||||
Для инкрементальных транзакционных таблиц (bookings, tickets, flights, segments,
|
||||
boarding_passes) этот батч НЕ используется. Вместо этого они грузят все новые
|
||||
boarding_passes) этот батч НЕ используется. Вместо этого они грузят все новые
|
||||
записи по HWM: WHERE load_dttm > (SELECT MAX(_load_ts) FROM ods.table).
|
||||
Это сделано для того, чтобы не потерять инкременты, если STG-DAG запускался
|
||||
Это сделано для того, чтобы не потерять инкременты, если STG-DAG запускался
|
||||
несколько раз до запуска ODS-DAG'а.
|
||||
|
||||
Зачем нужна согласованность (INTERSECT по всем справочникам)?
|
||||
Чтобы ODS загружал только те данные, для которых уже приехали ВСЕ связанные
|
||||
справочники. Это защищает от рассинхрона данных, когда часть измерений в текущем
|
||||
справочники. Это защищает от рассинхрона данных, когда часть измерений в текущем
|
||||
батче обновилась, а часть — упала или не доехала, что могло бы привести к
|
||||
потере ссылочной целостности при сборке витрин.
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user