Ответ
Data Warehouse (DWH) — это централизованное, предметно-ориентированное, интегрированное и неизменяемое во времени хранилище данных, оптимизированное для аналитической обработки (OLAP) и отчетности.
Ключевые принципы архитектуры:
- Предметная ориентация: Данные организованы вокруг ключевых сущностей бизнеса (например, продажи, клиенты, продукты), а не вокруг операционных процессов.
- Интеграция: Данные из разнородных источников (OLTP-системы, CRM, лог-файлы) очищаются, трансформируются и приводятся к единому формату, словарям и единицам измерения.
- Неизменяемость и временная привязка: Данные являются историческими снимками. После загрузки они обычно не обновляются, а новые записи добавляются с временными метками, что позволяет анализировать изменения во времени.
- Оптимизация для чтения: Структура (часто звездообразная или снежинка) и индексы оптимизированы для выполнения сложных агрегирующих запросов, а не для частых операций вставки/обновления.
Типичные компоненты архитектуры:
- Источники данных: Операционные системы (ERP, CRM), базы данных, внешние API.
- Слой ETL/ELT: Процесс Extract (извлечение), Transform (трансформация), Load (загрузка) или его современная вариация ELT.
- Хранилище данных: Ядро DWH, где данные хранятся в виде фактов (меры) и измерений (контекст).
- Слой представления данных: Витрины данных (Data Marts), OLAP-кубы или слои для конкретных отделов.
- Инструменты доступа: BI-платформы (Tableau, Power BI), SQL-клиенты для аналитиков.
Пример логической схемы (звезда):
-- Таблица фактов (меры)
CREATE TABLE fact_sales (
sale_id INT PRIMARY KEY,
date_key INT, -- Ссылка на измерение даты
product_key INT, -- Ссылка на измерение продукта
customer_key INT, -- Ссылка на измерение клиента
quantity_sold INT,
revenue DECIMAL(10,2)
);
-- Таблица измерений (контекст)
CREATE TABLE dim_product (
product_key INT PRIMARY KEY,
product_name VARCHAR(255),
category VARCHAR(100),
supplier VARCHAR(100)
);
-- Аналогично dim_date, dim_customer
Почему это важно: DWH отделяет аналитическую нагрузку от операционных систем, обеспечивая единую версию правды, высокую производительность сложных запросов и основу для исторического анализа и прогнозирования.