Развитие идей
This commit is contained in:
+85
-31
@@ -2,7 +2,7 @@
|
||||
|
||||
---
|
||||
|
||||
### **Структура статьи про хранилище данных **
|
||||
# **Структура статьи про хранилище данных **
|
||||
|
||||
1. Введение. Проблема аналитики в OLTP
|
||||
2. Учебный пример. Интернет-магазин
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
---
|
||||
|
||||
#### **1. Введение: Аналитика — это не оперативный учет**
|
||||
# **1. Введение: Аналитика — это не оперативный учет**
|
||||
|
||||
OLTP - Оперативный учет
|
||||
- CRM
|
||||
@@ -40,7 +40,7 @@ OLTP - Сложные JOIN -> Медленные отчеты -> Проблем
|
||||
|
||||
---
|
||||
|
||||
#### **2. Учебный пример: интернет-магазин**
|
||||
# **2. Учебный пример: интернет-магазин**
|
||||
|
||||
*(Оставляю вашу отличную ER-диаграмму без изменений)*
|
||||
|
||||
@@ -51,11 +51,44 @@ erDiagram
|
||||
PRODUCT ||--o{ ORDER_ITEM : referenced
|
||||
PRODUCT ||--o{ PRICE : has
|
||||
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
|
||||
flowchart TD
|
||||
@@ -96,7 +129,7 @@ flowchart TD
|
||||
|
||||
---
|
||||
|
||||
#### **4. Путешествие данных по слоям**
|
||||
## **4. Путешествие данных по слоям**
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
@@ -127,9 +160,26 @@ flowchart LR
|
||||
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
|
||||
erDiagram
|
||||
@@ -157,6 +207,8 @@ erDiagram
|
||||
}
|
||||
```
|
||||
|
||||
Что из базвой модели данных
|
||||
|
||||
**SCD Type 2 - Визуализация истории**:
|
||||
|
||||
```mermaid
|
||||
@@ -174,12 +226,19 @@ gantt
|
||||
section Санкт-Петербург, new_premium@email.com
|
||||
Версия 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
|
||||
erDiagram
|
||||
@@ -215,6 +274,16 @@ erDiagram
|
||||
}
|
||||
```
|
||||
|
||||
Описание текстом про хабы, сателлиты, связи.
|
||||
Показать, как учебную БД можно разложить по схеме Data Vault.
|
||||
Сказить, что здесь DV рассмотрен обзорно
|
||||
|
||||
Упомянуть про DV 1
|
||||
|
||||
## Anchor Modeling
|
||||
|
||||
Кратко
|
||||
|
||||
**Сравнение моделей**:
|
||||
|
||||
```mermaid
|
||||
@@ -227,11 +296,19 @@ quadrantChart
|
||||
"Data Vault": [0.8, 0.8]
|
||||
"Anchor": [0.9, 0.9]
|
||||
```
|
||||
Рассказать, что выбор модели для данных далеко не всегда однозначен, и является компромисснным.
|
||||
|
||||
3NF - преимущества и недостатки
|
||||
Снежинка - преимущества и недостатки
|
||||
DV
|
||||
Anchor Modeling
|
||||
|
||||
---
|
||||
|
||||
#### **7. Практикум: собираем витрину**
|
||||
|
||||
Раздел мне не нравится, надо бы переработать.
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
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. Эксплуатация: качество и эволюция**
|
||||
|
||||
```mermaid
|
||||
|
||||
Reference in New Issue
Block a user