- Зачем:
- необходимо синхронизировать документацию с фактически выполненными изменениями в коде.
- Что:
- отмечена как выполненная задача по явному указанию storage type для всех таблиц.
- обновлено обоснование для dds.dim_calendar (AO Row из-за малой ширины таблицы).
- отмечен как выполненный рефакторинг hashdiff в dim_routes_load.sql.
- Проверка:
- визуальная сверка docs/internal/architecture_review.md с файлами в sql/dds/ и sql/ods/.
- Зачем:
- zstd (level 1) является современным стандартом для Greenplum 6.0+, обеспечивая более высокую скорость декомпрессии и лучшее сжатие.
- Что:
- обновлены все DDL стейджинга (STG) и базовых таблиц.
- обновлена архитектурная документация (ADR-3) и планы реализации.
- исправлены примеры кода в Airflow DAG и описании ETL.
- Проверка:
- успешное выполнение CREATE TABLE с новыми параметрами в Greenplum 6.27.1.
- Зачем:
- исправление критических ошибок P0 (гонка HWM, ошибки в SQL CTE, непоследовательный lineage).
- использование временных таблиц делает код более читаемым для студентов и производительным для Greenplum.
- Что:
- в sql/ods/ (bookings, tickets, segments, boarding_passes, flights) выборка дельты вынесена в CREATE TEMP TABLE.
- HWM теперь вычисляется один раз, устраняя гонку между UPDATE и INSERT.
- во всех стейтментах используется оригинальный batch_id из STG для _load_id.
- поле _load_ts в ODS теперь берется из STG (load_dttm), что делает HWM-сравнение корректным.
- Проверка:
- визуальный аудит SQL-логики.
- Зачем:
- необходимо зафиксировать выполнение критической задачи (P0) в плане работ.
- Что:
- в архитектурном ревью пункт "ODS batch resolver теряет данные" отмечен как выполненный.
- Проверка:
- визуальная проверка docs/internal/architecture_review.md.
- Зачем:
- зафиксировать принятые архитектурные решения с обоснованием для менти,
чтобы студенты понимали границы учебных упрощений и реальную практику.
- Что:
- ADR-1: города/страны/модели — атрибуты измерений (star vs snowflake).
- ADR-2: партиционирование не используем (учебные объёмы), с примером
exchange partition и контекстом импортозамещения (Teradata/Exadata → GP).
- ADR-3: явный storage type для каждой таблицы — AO Column для write-once,
AO Row для snapshot-справочников (TRUNCATE+INSERT), heap для UPDATE-таблиц.
- добавлена задача P2 по реализации ADR-3, обновлена сводка трудозатрат.
- Проверка:
- cat docs/internal/architecture_review.md | grep "ADR-".
- Зачем:
- закрыты задачи P0 и P1 из ревью архитектуры для повышения понятности стенда для студентов.
- Что:
- исправлен distribution key для airport_traffic в дизайн-документе.
- добавлены комментарии о генерации SK и отсутствии SK в фактах.
- создан документ docs/dag_execution_order.md с описанием порядка запуска DAG-ов.
- объяснена логика late-arriving dimensions и batch resolver.
- добавлена legacy-пометка для хелпера greenplum.py.
- Проверка:
- визуальная проверка добавленных комментариев и новых файлов.
- Зачем:
- зафиксировать оценку учебной ценности текущей конструкции (STG→ODS→DDS→DM)
и сформировать backlog задач для доработки стенда.
- Что:
- создан docs/internal/architecture_review.md с анализом 9 сильных сторон
и приоритизированным списком замечаний (P0–P3) с чеклистом задач.
- Проверка:
- cat docs/internal/architecture_review.md.