Data Warehouse (DWH)
Хранилище данных — информационная система, в которой хранятся данные из разных источников. Используется для анализа, составления отчетов и интеграции данных транзакций.
Архитектура DWH
- Нижний уровень: БД, объединяющие данные из источников информации (например, транзакционные СУБД или SaaS-сервисы).
- Средний уровень: Сервисы и приложения, преобразующие данные в структуру для анализа и сложных запросов (например, сервер OLAP).
- Верхний уровень: Инструменты для создания отчетов, визуализации и анализа. Также называют уровнем клиента.
Модели DWH
- Виртуальное ХД: Отдельные БД, используемые совместно для доступа ко всем данным, как если бы они хранились в одном хранилище.
- Модель витрины данных: Хранилища агрегированных данных по одной бизнес-сфере для отчетности и анализа.
- Модель корпоративного ХД: Хранение агрегированных данных со всей организации.
Схемы DWH
-
Звезда:
В центре таблица фактов с основными метриками, вокруг — таблицы измерений с атрибутами. Простая для чтения и оптимизированная для производительности запросов.
Пример: Таблица фактов о продажах (сумма, количество), таблицы измерений: товары, клиенты, даты, магазины. -
Снежинка:
Нормализованная версия «Звезды», где таблицы измерений делятся на подтаблицы. Экономит место, но усложняет запросы.
Пример: Таблица «Клиенты» делится на персональные данные, контакты, адреса. -
Anchor Modeling:
Полная нормализация данных с якорями (таблицы с сущностями), атрибутами и связями. Удобно для добавления данных и расширения структуры.
Пример: Якоря — клиенты, товары; атрибуты для клиента — имя, дата рождения; связи — покупки. -
Data Vault:
Гибридный подход, объединяющий плюсы «Звезды» и 3NF.
Состоит из:- Хаб: Таблица с основными данными.
- Ссылка: Соединяет и масштабирует систему.
- Спутник: Хранит изменяющиеся атрибуты.
Пример: Хабы для «Клиентов» и «Продуктов», ссылки связывают их с транзакциями, сателлиты хранят текущий адрес клиента или обновленные данные о продукте.
Методологии проектирования
Инмон: нисходящий подход
- После процесса ETL создается нормализованная модель хранилища, из которой формируются витрины данных.
- Пример: В страховании сначала формируется общая информация о застрахованных (доход, возраст, болезни), затем фильтруются данные для конкретных моделей.
Кимбалл: восходящий подход
- Данные после ETL поступают в несколько независимых хранилищ для отдельных бизнес-направлений, которые затем объединяются в единое DWH.
- Пример: Для анализа рекламных кампаний используются только выборочные метрики.
Пример работы DWH
- Извлечение данных (ETL) о транзакциях, счетах и клиентах из CRM, бухгалтерских баз или систем транзакций.
- Трансформация данных: удаление дублей, сопоставление клиентов с транзакциями, расчет суммарных значений (например, общих расходов).
- Загрузка по схеме «Звезда»: загрузка таблицы фактов (транзакции) и связанных таблиц измерений (клиенты, счета).
- Данные сохраняются в DWH и структурируются для доступа через OLAP-кубы или напрямую.
- Бизнес-аналитики или системы BI используют интерфейсы для анализа данных (например, отчеты по прибыли и убыткам).
Подборка материалов по теме DWH
- Что такое Data Warehouse
- Архитектура хранилищ данных: традиционная и облачная
- Как устроена работа с DWH в Lamoda
- Единое хранилище данных: опыт НМГ
- Хранилища данных: обзор технологий и подходов к проектированию
- Схема снежинки в модели хранилища данных
- 5 шагов проектирования DWH с Data Vault: практический пример
- Anchor Modeling и GP: презентация
- Хранилище данных и база данных: понимание различий