Commit Graph
45 Commits
Author SHA1 Message Date
ddadmin d25c753eb4 feat(dds): реализован слой dds для bookings
- Зачем:
  - подготовлен учебный Star Schema слой для перехода от ODS к аналитике и витринам.
- Что:
  - добавлены 21 SQL-файл для DDS (DDL/LOAD/DQ) с SCD1/SCD2 и фактом `fact_flight_sales`.
  - добавлены DAG `bookings_dds_ddl` и `bookings_to_gp_dds`, а также smoke-тесты структуры DAG.
  - обновлены `sql/ddl_gp.sql` и документация (`README`, `docs/*`, `db_schema`) под поток `stg -> ods -> dds`.
- Проверка:
  - make test.
2026-02-25 23:05:43 +03:00
ddadmin 9dbfc3572d docs(dwh): актуализирована db_schema для ODS и DDS
- Зачем:
  - синхронизировать db_schema.md с фактическим состоянием репозитория и текущим DDS-планом.
- Что:
  - обновлён статус слоёв: STG/ODS отмечены как реализованные, DDS как слой в проектировании.
  - приведены к актуальному виду DDS-объекты и нейминг (`dds.dim_*`, `dds.fact_flight_sales`, `dds.dim_routes` SCD2).
  - обновлены mermaid-диаграмма, обучающие пояснения, TODO, связанные документы и история изменений.
- Проверка:
  - git diff -- docs/internal/db_schema.md
2026-02-24 00:09:14 +03:00
ddadmin e98821f28d fix(dwh): доработан DDS-план после повторного ревью
- Зачем:
  - закрыть оставшиеся риски и противоречия в проектировании DDS перед реализацией.
- Что:
  - добавлена обработка исчезнувших маршрутов в SCD2 (`UPDATE missing`) и уточнён паттерн идемпотентности.
  - уточнены правила SCD2 на DATE-гранулярности (`valid_from <= valid_to`) и добавлена DQ-проверка current-среза DDS vs ODS.
  - расширены DQ-требования (покрытие календаря по датам flights, route-related FK), исправлены критерии готовности и текстовые несоответствия.
- Проверка:
  - git diff -- docs/internal/bookings_dds_design.md
2026-02-24 00:03:37 +03:00
ddadminandClaude Opus 4.6 06a5b7bc4c fix(dwh): исправлены 5 замечаний ревью плана DDS
- Зачем:
  - устранить противоречия и пробелы в плане DDS перед реализацией.
- Что:
  - HIGH: факт теперь использует point-in-time SCD2 lookup для routes,
    UPDATE факта не перезаписывает dimension SK (историчность сохранена).
  - MEDIUM: явная политика NULL FK в факте (3 группы: обязательные,
    зависят от маршрута, зависят от расписания) + DQ с порогом 1%.
  - MEDIUM: добавлены DQ-проверки SCD2 интервалов (valid_from < valid_to,
    нет перекрытий версий).
  - MEDIUM: DQ факта теперь проверяет calendar_sk и route_sk IS NULL
    с порогом.
  - LOW: добавлен стабильный tie-breaker (ticket_no) при дедупликации
    passengers.
  - добавлена секция backfill/reprocess политики.
- Проверка:
  - cat docs/internal/bookings_dds_design.md.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 23:05:16 +03:00
ddadminandClaude Opus 4.6 e6e923794c docs(dwh): добавлен план реализации DDS слоя (Star Schema)
- Зачем:
  - зафиксировать архитектурные решения DDS до начала реализации (для Codex).
- Что:
  - создан docs/internal/bookings_dds_design.md с полным планом DDS.
  - 6 измерений (calendar, airports, airplanes, tariffs, passengers, routes) + факт flight_sales.
  - dim_routes реализует классический SCD2 с hashdiff.
  - все остальные измерения — SCD1 UPSERT со стабильными SK.
  - факт — инкрементальный UPSERT по зерну (ticket_no, flight_id).
- Проверка:
  - cat docs/internal/bookings_dds_design.md.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 22:55:07 +03:00
ddadmin 03765d2808 feat(ods): реализован ODS слой и DAG загрузки из STG
- Зачем:
  - подготовлена учебная реализация ODS слоя с типизацией, UPSERT и DQ, чтобы продолжить работу от STG к DDS/DM.
- Что:
  - добавлены SQL-скрипты `sql/ods/*_ddl.sql`, `sql/ods/*_load.sql`, `sql/ods/*_dq.sql` для 9 сущностей bookings.
  - добавлены DAG `bookings_ods_ddl` и `bookings_to_gp_ods`, а также smoke-тесты для новых графов.
  - ODS DDL интегрирован в `sql/ddl_gp.sql`; документация и план обновлены под единый запуск через `make ddl-gp`.
- Проверка:
  - `make test`.
  - `make ddl-gp`.
2026-02-23 01:51:40 +03:00
ddadminandClaude Opus 4.6 dc1dc9c66a fix(dwh): исправлены 3 замечания codex-ревью плана ODS
- Зачем:
  - codex нашёл баги, которые сломали бы первый прогон ODS.
- Что:
  - resolve batch: MAX(batch_id) заменён на ORDER BY load_dttm DESC LIMIT 1
    (run_id — строка, лексикографический MAX не гарантирует хронологию).
  - ручная проверка: добавлен make ddl-gp-ods (без него ODS-объекты не создадутся).
  - routes/flights FK: расширено пояснение, почему проверка по route_no без
    validity допустима в ODS и что учитывать при join в DDS.
- Проверка:
  - make test (11 passed, 4 skipped).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 23:44:08 +03:00
ddadminandClaude Opus 4.6 7bdb5acfcb docs(dwh): исправлен план ODS после ревью (v2 → v3)
- Зачем:
  - v2 содержал баги (CTE scope, distribution key), неточности маппинга
    колонок и пробелы в описании DAG-контракта, что сломало бы реализацию.
- Что:
  - исправлен CTE scope: дублирование CTE в UPDATE и INSERT statements.
  - ods.tickets: DISTRIBUTED BY (ticket_no) вместо book_ref для UPSERT.
  - добавлен Python-сниппет resolve_stg_batch_id (PythonOperator + XCom).
  - заменены {{ params.stg_batch_id }} → {{ ti.xcom_pull(...) }} во всех SQL.
  - <> заменён на IS DISTINCT FROM (NULL-safe change detection).
  - DISTINCT ON заменён на ROW_NUMBER() (стандартный DE-паттерн).
  - добавлена секция 4.3 с полной таблицей маппинга STG → ODS.
  - routes: scheduled_departure_time → departure_time, duration без rename.
  - DAG-граф: resolve_stg_batch_id как корневой таск, параллельные ветки.
  - DQ: добавлена проверка «батч не пустой» для snapshot-справочников.
  - DoD: убрано valid_from/valid_to, оставлено _load_id/_load_ts/event_ts.
- Проверка:
  - make test (11 passed, 4 skipped).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 23:39:16 +03:00
ddadmin 6ceff7b027 docs(dwh): зафиксированы конвенции нейминга и обновлён план ODS
- Зачем:
  - нужен единый стандарт именования полей, чтобы новые слои не расходились с учебными материалами.
- Что:
  - добавлен единый документ с правилами нейминга `docs/internal/naming_conventions.md`.
  - полностью переписан `docs/internal/bookings_ods_design.md` в эталонный учебный план ODS (SCD1, батч-контракт, DQ, граф DAG).
  - добавлены ссылки на стандарт нейминга в `docs/README.md`, `docs/internal/db_schema.md` и `AGENTS.md`.
- Проверка:
  - проверен diff по измененным файлам (`git diff`).
2026-02-22 22:45:53 +03:00
ddadmin d1e81099c7 docs(internal): добавлен план реализации ODS слоя
- Зачем:
  - зафиксировать архитектурное решение для ODS слоя перед началом разработки.
- Что:
  - создан файл docs/internal/bookings_ods_design.md.
  - описана архитектура ODS и отличия от STG слоя.
  - добавлены схемы таблиц (справочники с SCD Type 2, транзакции с UPSERT).
- Проверка:
  - git show --stat HEAD
2026-02-22 21:31:14 +03:00
ddadmin a0258fd63e Доводка стилистики документации 2026-01-18 22:52:49 +03:00
ddadmin 9e08bc181c Улучшение тестов 2026-01-18 22:32:57 +03:00
ddadmin 843500cf52 Улучшение DQ проверки 2026-01-18 22:24:06 +03:00
ddadmin e5a9a07f01 Улучшения комментариев 2026-01-18 21:56:17 +03:00
ddadmin 761cf5dd93 статусы задач 2026-01-18 21:53:28 +03:00
ddadmin 8946df4a28 Допустимость пустых данных по некоторым таблицам 2026-01-18 21:48:47 +03:00
ddadmin ba74b521dc Исправлены критические замечания 2026-01-18 21:33:46 +03:00
ddadmin 762d539d52 Ревью решения 2026-01-18 21:22:00 +03:00
ddadmin 9c033b39aa Генерация dds слоя по ТЗ - без тестов 2026-01-18 11:04:46 +03:00
ddadmin d525cf56c4 Финальные доработки 2026-01-17 23:19:37 +03:00
ddadmin 520eacbfe2 Доработки GLM 2026-01-17 23:14:49 +03:00
ddadmin fec67dfad2 доработки плана 2026-01-17 22:41:25 +03:00
ddadmin 10a36b6dfb план витрин до stg слоя 2026-01-17 22:27:05 +03:00
ddadmin 5f3e32c031 Глубокая переработка документации 2026-01-09 18:48:18 +03:00
ddadmin c3b2050cc4 еще баги и документирование сделанного 2026-01-09 12:41:36 +03:00
ddadmin 5668edeb7b Диагностика проблемы 2026-01-09 00:33:45 +03:00
ddadmin 810d3d4727 дальшейшая отладка 2026-01-08 23:51:30 +03:00
ddadmin 573c853f15 фикс pxf 2026-01-08 23:34:26 +03:00
ddadmin 1efeb58449 диагностика проблемы с pxf 2026-01-08 23:14:53 +03:00
ddadmin dfcc456120 Документирование решения 2026-01-08 22:24:24 +03:00
ddadmin daed2313e7 Фикс создания connections 2025-12-10 22:58:19 +03:00
ddadmin 8fb78f9086 fix: добавленны airflow connections и обновлена структура запуска 2025-12-10 22:52:08 +03:00
ddadmin 29490828f4 Уход от запуска DAG за конкретную дату.
Теперь новый запуск генерирует и переливает новый, следующий день
2025-12-10 21:53:17 +03:00
ddadmin c865fa282e feat(dags): add ddl dag for gp and rename csv dq 2025-12-10 18:41:00 +03:00
ddadmin cacf989a9c вынесли sql из dag в папку sql 2025-12-10 16:59:50 +03:00
ddadmin 2c8f5c1e23 Учебный даг первоначально протестирован 2025-12-09 11:22:56 +03:00
ddadmin 196171e3d6 Склелет учебного даг 2025-12-09 10:43:43 +03:00
ddadmin ae7f909f5d Проработка задачи на ETL 2025-12-09 10:39:47 +03:00
ddadmin c3d7759e6b Переименование БД GP в gp_dwh 2025-12-09 10:09:46 +03:00
ddadmin 4515577b4a Смена внешнего порта GreenPlum 2025-12-09 09:57:52 +03:00
ddadmin 86435c282d Уточнения планов 2025-12-09 09:35:31 +03:00
ddadmin dbd2406765 Планы по включению PXF для GP 2025-12-09 00:09:33 +03:00
ddadmin b56ea952e7 Подключение bookings db заработало 2025-12-08 23:31:13 +03:00
ddadmin c17baf447d bookings debug 2025-12-08 22:08:07 +03:00
ddadmin c95dab6478 Доработки по генерации БД - в процессе 2025-12-08 18:26:10 +03:00