From f26ed7875cedb033c869a2ac2fc8968e6119dbe7 Mon Sep 17 00:00:00 2001 From: Dmitry Dementev Date: Thu, 5 Mar 2026 23:20:02 +0300 Subject: [PATCH] =?UTF-8?q?docs(internal):=20=D0=BE=D0=B1=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=20=D1=81=D1=82=D0=B0=D1=82=D1=83=D1=81?= =?UTF-8?q?=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=20=D0=B2=20=D0=B0=D1=80=D1=85?= =?UTF-8?q?=D0=B8=D1=82=D0=B5=D0=BA=D1=82=D1=83=D1=80=D0=BD=D0=BE=D0=BC=20?= =?UTF-8?q?=D0=BE=D0=B1=D0=B7=D0=BE=D1=80=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Зачем: - необходимо синхронизировать документацию с фактически выполненными изменениями в коде. - Что: - отмечена как выполненная задача по явному указанию storage type для всех таблиц. - обновлено обоснование для dds.dim_calendar (AO Row из-за малой ширины таблицы). - отмечен как выполненный рефакторинг hashdiff в dim_routes_load.sql. - Проверка: - визуальная сверка docs/internal/architecture_review.md с файлами в sql/dds/ и sql/ods/. --- docs/internal/architecture_review.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/internal/architecture_review.md b/docs/internal/architecture_review.md index 447e0f0..fc7f105 100644 --- a/docs/internal/architecture_review.md +++ b/docs/internal/architecture_review.md @@ -97,10 +97,10 @@ GP-специфичная best practice, которую забывают даж ### P2: Средние усилия, заметное улучшение качества -- [ ] **Явный storage type для всех таблиц + AO где возможно** ✅ РЕШЕНИЕ ПРИНЯТО - - 18 из 28 таблиц имеют неявный heap (нет `WITH`) — студент не видит, что выбор сделан +- [x] **Явный storage type для всех таблиц + AO где возможно** ✅ РЕШЕНИЕ ПРИНЯТО + - 18 из 28 таблиц имели неявный heap (нет `WITH`) — теперь выбор сделан явно - **Целевая раскладка по storage:** - - **AO Column Store**: `dds.dim_calendar` (write-once, generate_series) + - **AO Row + zstd**: `dds.dim_calendar` (узкая таблица, column-store не даёт выигрыша) - **AO Row + zstd**: ODS snapshot-справочники (`airports`, `airplanes`, `routes`, `seats`) — перевести загрузку с UPSERT на TRUNCATE+INSERT (честнее для full snapshot семантики) - **AO Row + zstd**: `dds.dim_tariffs` (только INSERT, нет UPDATE) @@ -114,9 +114,9 @@ GP-специфичная best practice, которую забывают даж - Файлы: все `*_ddl.sql` в ods/, dds/, dm/ + переписать 4 ODS snapshot load-скрипта - См. ADR-3 -- [ ] **Дублирование hashdiff CTE в dim_routes_load.sql** - - `md5(COALESCE(...))` повторяется в Statement 1 и Statement 2, ROW_NUMBER() — 3 раза - - **Решение**: вынести в `CREATE TEMP TABLE tmp_routes_src ON COMMIT DROP` +- [x] **Дублирование hashdiff CTE в dim_routes_load.sql** + - md5(COALESCE(...)) повторяется в Statement 1 и Statement 2, ROW_NUMBER() — 3 раза + - **Решение**: вынесено в CREATE TEMP TABLE tmp_routes_src ON COMMIT DROP ✅ ВЫПОЛНЕНО - Файл: `sql/dds/dim_routes_load.sql` - [ ] **Несогласованность нейминга STG vs ODS+** ✅ РЕШЕНИЕ ПРИНЯТО