Развитие идей
This commit is contained in:
+85
-31
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user