Развитие идей

This commit is contained in:
2025-11-07 09:58:37 +03:00
parent acfbc4d037
commit ee55515b54
+85 -31
View File
@@ -2,7 +2,7 @@
--- ---
### **Структура статьи про хранилище данных ** # **Структура статьи про хранилище данных **
1. Введение. Проблема аналитики в OLTP 1. Введение. Проблема аналитики в OLTP
2. Учебный пример. Интернет-магазин 2. Учебный пример. Интернет-магазин
@@ -17,7 +17,7 @@
--- ---
#### **1. Введение: Аналитика — это не оперативный учет** # **1. Введение: Аналитика — это не оперативный учет**
OLTP - Оперативный учет OLTP - Оперативный учет
- CRM - CRM
@@ -40,7 +40,7 @@ OLTP - Сложные JOIN -> Медленные отчеты -> Проблем
--- ---
#### **2. Учебный пример: интернет-магазин** # **2. Учебный пример: интернет-магазин**
*(Оставляю вашу отличную ER-диаграмму без изменений)* *(Оставляю вашу отличную ER-диаграмму без изменений)*
@@ -51,11 +51,44 @@ erDiagram
PRODUCT ||--o{ ORDER_ITEM : referenced PRODUCT ||--o{ ORDER_ITEM : referenced
PRODUCT ||--o{ PRICE : has PRODUCT ||--o{ PRICE : has
PROMO ||--o{ ORDER_ITEM : applied PROMO ||--o{ ORDER_ITEM : applied
CUSTOMER {
int customer_id PK
string email
string phone
}
PRODUCT {
int product_id PK
string name
}
ORDER {
int order_id PK
date order_date
int customer_id FK
}
ORDER_ITEM {
int order_item_id PK
int order_id FK
int product_id FK
int qty
numeric price_at_sale
}
PRICE {
int product_id FK
date valid_from
date valid_to
numeric price
}
PROMO {
int promo_id PK
string code
}
``` ```
Описание примера текстом
--- ---
#### **3. Архитектура хранилища: зачем делить на слои?** # **3. Архитектура хранилища: зачем делить на слои?**
```mermaid ```mermaid
flowchart TD flowchart TD
@@ -96,7 +129,7 @@ flowchart TD
--- ---
#### **4. Путешествие данных по слоям** ## **4. Путешествие данных по слоям**
```mermaid ```mermaid
flowchart LR flowchart LR
@@ -127,9 +160,26 @@ flowchart LR
DDS --> DM DDS --> DM
``` ```
### 4.1 STG (Staging/Bronze)
**Коротко**: «как пришло». Идемпотентность, дедупликация, неизменяемость/переигрузка.
### 4.2 ODS (Operational Data Store/Silver)
**Коротко**: чистка и выравнивание типов, базовая унификация кодов, ещё без тяжёлой бизнес-логики.
Несколько примеров из учебного примера
### 4.3 DDS (Integrated/Conformed Layer)
**Коротко**: интеграция источников, общие справочники, SK/BK, SCD. Здесь уже начинаются модели данных. Какие модели испольуют.
### 4.4 DM (Data Marts/Gold)
**Коротко**: модели под задачи BI (звезда/снежинка). Агрегаты, материализации.
--- ---
#### **5. Базовые понятия: Факты, Измерения, Ключи** ## **5. Базовые понятия: Факты, Измерения, Ключи**
```mermaid ```mermaid
erDiagram erDiagram
@@ -157,6 +207,8 @@ erDiagram
} }
``` ```
Что из базвой модели данных
**SCD Type 2 - Визуализация истории**: **SCD Type 2 - Визуализация истории**:
```mermaid ```mermaid
@@ -174,12 +226,19 @@ gantt
section Санкт-Петербург, new_premium@email.com section Санкт-Петербург, new_premium@email.com
Версия 3 :active, 2023-10-01, 2024-12-31 Версия 3 :active, 2023-10-01, 2024-12-31
``` ```
Краткое описание текстом. Указание, что подробно про scd можно почитать в соседней статье SCD.md
--- ---
#### **6. Модели данных для DDS** ## **6. Модели данных для DDS**
**Data Vault 2.0**: Варианты, как можно было бы разложить в dds учебный пример - придумать.
### 3NF
### Снежинка
### **Data Vault 2.0**:
```mermaid ```mermaid
erDiagram erDiagram
@@ -215,6 +274,16 @@ erDiagram
} }
``` ```
Описание текстом про хабы, сателлиты, связи.
Показать, как учебную БД можно разложить по схеме Data Vault.
Сказить, что здесь DV рассмотрен обзорно
Упомянуть про DV 1
## Anchor Modeling
Кратко
**Сравнение моделей**: **Сравнение моделей**:
```mermaid ```mermaid
@@ -227,11 +296,19 @@ quadrantChart
"Data Vault": [0.8, 0.8] "Data Vault": [0.8, 0.8]
"Anchor": [0.9, 0.9] "Anchor": [0.9, 0.9]
``` ```
Рассказать, что выбор модели для данных далеко не всегда однозначен, и является компромисснным.
3NF - преимущества и недостатки
Снежинка - преимущества и недостатки
DV
Anchor Modeling
--- ---
#### **7. Практикум: собираем витрину** #### **7. Практикум: собираем витрину**
Раздел мне не нравится, надо бы переработать.
```mermaid ```mermaid
flowchart TD flowchart TD
A[Источники] --> STG A[Источники] --> STG
@@ -274,29 +351,6 @@ GROUP BY d.date, p.product_name, c.customer_segment;
--- ---
#### **8. Выбор модели: дерево решений**
```mermaid
flowchart TD
Start[Выбор модели DDS] --> Q1{Количество источников?}
Q1 -->|Один источник| Q2{Требования к истории?}
Q1 -->|Несколько источников| Q3{Частота изменений схемы?}
Q2 -->|Простая история| Model1[Звезда/Снежинка]
Q2 -->|Полная аудируемая история| Model2[Data Vault]
Q3 -->|Редко| Model3[3NF]
Q3 -->|Часто| Model4[Data Vault]
Model1 --> Final[Рекомендация]
Model2 --> Final
Model3 --> Final
Model4 --> Final
```
---
#### **9. Эксплуатация: качество и эволюция** #### **9. Эксплуатация: качество и эволюция**
```mermaid ```mermaid