diff --git a/dwh-modeling-basics.md b/dwh-modeling-basics.md index ae4656e..5e0c0b2 100644 --- a/dwh-modeling-basics.md +++ b/dwh-modeling-basics.md @@ -19,7 +19,7 @@ --- -## 1. Введение: зачем слои и почему не «всё в одну таблицу» +## 1. Введение: зачем слои и почему не «всё в одну таблицу» **Коротко**: OLTP vs OLAP, управляемость, прозрачность, стоимость. @@ -31,7 +31,7 @@ --- -## 2. Учебный домен/пример (интернет-магазин) +## 2. Учебный домен/пример (интернет-магазин) **Описание**: используем один домен сквозь статью: клиенты, товары, заказы, позиции заказа, цены, акции. @@ -81,7 +81,7 @@ erDiagram --- -## 3. Типичная структура слоёв (STG → ODS → DDS → DM) +## 3. Типичная структура слоёв (STG → ODS → DDS → DM) **Картинка-конвейер (эскиз)**: @@ -105,7 +105,7 @@ flowchart TD --- -## 4. Слои по отдельности +## 4. Слои по отдельности ### 4.1 STG (Staging/Bronze) @@ -121,7 +121,7 @@ flowchart TD ### 4.3 DDS (Integrated/Conformed Layer) -**Коротко**: интеграция источников, общие справочники, SK/BK, SCD. +**Коротко**: интеграция источников, общие справочники, SK/BK, SCD. Здесь уже начинаются модели данных. Какие модели испольуют. **TODO**: где хранить историю, антидубли, конформные измерения. @@ -133,7 +133,7 @@ flowchart TD --- -## 5. Модели данных для DDS/DM: 3NF, Звезда/Снежинка, Data Vault, Anchor +## 5. Модели данных для DDS/DM: 3NF, Звезда/Снежинка, Data Vault, Anchor ### 5.1 3NF (по Инмону, 3-я нормальная форма) @@ -154,7 +154,8 @@ erDiagram ### 5.2 Звезда/Снежинка (по Кимбаллу) -**Идея**: простые и быстрые аналитические запросы. +**Идея**: простые и быстрые аналитические запросы.  +Упомянуть, что самая часто испольуемая модель. **Эскиз звезды: факт + измерения**: @@ -180,20 +181,40 @@ graph LR **Идея**: масштабируемая интеграция многоисточниковых данных с полной историей. -**Эскиз DV:** +**Эскиз DV (упорядоченная колонками)**: ```mermaid flowchart LR - HC[Hub_Customer] --> SC[SAT_Customer] - HP[Hub_Product] --> SP[SAT_Product] - HO[Hub_Order] --> SO[SAT_Order] - HO --> LOP[Link_OrderProduct] - HP --> LOP - HO --> LOC[Link_OrderCustomer] + %% Hubs (слева) + HC[Hub_Customer] + HO[Hub_Order] + HP[Hub_Product] + + %% Links (центр) + LOC[Link_OrderCustomer] + LOP[Link_OrderProduct] + + %% Satellites (справа) + SC[SAT_Customer] + SO[SAT_Order] + SP[SAT_Product] + + %% Связи к сателлитам + HC --> SC + HO --> SO + HP --> SP + + %% Связи между хабами и линками HC --> LOC + HO --> LOC + HO --> LOP + HP --> LOP ``` **TODO**: Raw Vault vs Business Vault, плюс/минус. +На каких слоях используем, зачем там оно нам. + +Схема часто используется. Пишем, почему. ### 5.4 Anchor Modeling (Анкерное моделирование) @@ -216,9 +237,11 @@ flowchart LR **TODO**: где уместно, порог входа. +Редко используется. Сложна для людей и для машин. Обосновываем. + --- -## 6. Ключевые понятия (минимум для практики) +## 6. Ключевые понятия (минимум для практики) * **Факты (Facts)** и **Измерения (Dimensions)**; **зерно (grain)** факта. * **Натуральные ключи (BK)** и **суррогатные ключи (SK)**. @@ -242,7 +265,7 @@ gantt --- -## 7. Выбор подхода: дерево решений (эскиз) +## 7. Выбор подхода: дерево решений (эскиз) ```mermaid graph TD @@ -260,7 +283,7 @@ graph TD --- -## 8. Эволюция схемы и эксплуатационные практики +## 8. Эволюция схемы и эксплуатационные практики * Совместимость назад/вперёд, view‑based миграции. * Идемпотентные пайплайны, дедупликация, инкрементальные загрузки (CDC). @@ -271,7 +294,7 @@ graph TD --- -## 9. MVP учебного проекта (рецепт) +## 9. MVP учебного проекта (рецепт) 1. STG: положить сырые данные из 2–3 источников. 2. ODS: очистка и выравнивание типов. @@ -289,7 +312,7 @@ graph LR --- -## 10. Заключение +## 10. Заключение **Заглушки**: повторить ключевые тезисы, дать ссылки на дополнительные темы: CDC, оркестрация, тестирование данных, наблюдаемость.