- Зачем: - на solution не было явного «что дальше» после шага 6 и навигации по паттернам. - Что: - README: маркетинг-баннер + шаг 7 «Изучите готовую реализацию». - docs/assignment/README: навигатор по всем паттернам (ODS → DDS → DM) с файлами. - архивирован план онбординга в docs/archive/. - Проверка: - make test (4 passed), make lint (clean). - grep «заглушки/SELECT 1» в README и docs/assignment/README — не найдено. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Учебные задания
Это ветка
solution— здесь всё уже реализовано. Используйте её как справочник, а задания выполняйте на веткеmain.
Навигатор по реализации
На этой ветке полностью работает пайплайн STG → ODS → DDS → DM.
Ниже — рекомендуемый порядок изучения: от простых паттернов к сложным.
ODS: загрузка из STG
| Паттерн | Файл | Что посмотреть |
|---|---|---|
| TRUNCATE + INSERT (snapshot-справочник) | sql/ods/airports_load.sql |
Фильтрация по stg_batch_id, дедупликация через ROW_NUMBER() |
| SCD1 UPSERT (транзакционные данные) | sql/ods/bookings_load.sql |
TEMP TABLE → UPDATE (IS DISTINCT FROM) → INSERT, HWM |
DDS: измерения и факт
| Паттерн | Файл | Что посмотреть |
|---|---|---|
| SCD1 (простое измерение) | sql/dds/dim_airports_load.sql |
UPSERT с суррогатным ключом |
| SCD1 с обогащением | sql/dds/dim_airplanes_load.sql |
JOIN с ods.seats для total_seats |
| SCD2 (версионирование) | sql/dds/dim_routes_load.sql |
hashdiff, valid_from/valid_to, денормализация |
| Факт с point-in-time JOIN | sql/dds/fact_flight_sales_load.sql |
SCD2 lookup, защитные LEFT JOIN |
DM: витрины
| Паттерн | Файл | Что посмотреть |
|---|---|---|
| UPSERT с HWM по датам | sql/dm/sales_report_load.sql |
Инкрементальная агрегация фактов |
| Full Rebuild (AO Column) | sql/dm/route_performance_load.sql |
TRUNCATE + INSERT, агрегация по SCD2 route_bk |
| UNION ALL (dual-role dimension) | sql/dm/airport_traffic_load.sql |
Разворот факта: departure + arrival |
| Двухуровневая агрегация | sql/dm/monthly_overview_load.sql |
Честный avg_load_factor через 2 уровня |
| Метод затронутых ключей | sql/dm/passenger_loyalty_load.sql |
HWM по пассажирам, пересчёт полной истории |
Техническое задание
Основной документ: analyst_spec.md — ТЗ от аналитика с описанием всех таблиц, маппингами, бизнес-правилами и подсказками.
Описания DAG-ов
- STG · ODS · DDS · DM
- Порядок запуска DAG-ов
Для менторов
Дизайн заданий и педагогическая логика: docs/design/assignment_design.md.