Хранилище
данных (Data Warehouse, DWH) - это
специализированная централизованная база данных, которая создается отдельно от
рабочих учетных систем, чтобы сложные аналитические расчеты не замедляли
ежедневную работу компании. По классическому определению родоначальника этой
концепции Билла Инмона, хранилище данных предназначено для поддержки принятия
управленческих решений и обладает четырьмя обязательными свойствами: оно
является предметно-ориентированным (данные сгруппированы вокруг ключевых
бизнес-сущностей - продаж, клиентов, финансов, а не вокруг конкретных
программ), интегрированным (информация из разных систем приведена к
единому формату и справочникам), привязанным ко времени (хранит глубокую
историю показателей за несколько лет с четкой фиксацией дат) и неизменяемым
(попавшие в хранилище исторические данные не перезаписываются и не удаляются, а
только дополняются новыми срезами).
В основе
проектирования аналитических хранилищ лежит многомерное моделирование (подход
Ральфа Кимбалла), которое делит все таблицы на два взаимосвязанных типа:
- Таблица фактов (Fact Table) - это центральная и самая большая таблица хранилища, в которой
фиксируются конкретные произошедшие бизнес-события (продажи, отгрузки,
списания, платежи). Она содержит числовые метрики, которые можно
суммировать и усреднять (выручка, количество проданных штук,
себестоимость, скидка), а также набор внешних ключей (Foreign Keys),
связывающих каждую операцию со справочниками.
- Таблицы измерений (Dimension
Tables) - это контекстные справочники, которые
окружают таблицу фактов и отвечают на вопросы «кто?», «что?», «где?» и
«когда?» (таблицы Клиенты, Товары, Магазины, Сотрудники, Календарь). Они
содержат текстовые и категориальные признаки (название бренда, город филиала,
сегмент покупателя, день недели), по которым руководители и аналитики
фильтруют и группируют цифры в отчетах.
В
зависимости от того, как таблицы фактов и измерений связаны между собой,
выделяют две основные схемы организации хранилища данных:
- Схема «Звезда» (Star Schema) предполагает, что центральная
таблица фактов напрямую связана с таблицами измерений в один уровень,
образуя визуальную фигуру звезды. Сами таблицы измерений при этом
денормализованы (все описания товара - его категория, подкатегория и бренд - хранятся внутри одной таблицы «Товары»). Несмотря на избыточность
текста, такая схема обеспечивает максимальную скорость выполнения
аналитических запросов за счет минимального количества операций
объединения таблиц (JOIN).
- Схема «Снежинка» (Snowflake
Schema)
является усложненным вариантом «Звезды», в котором таблицы измерений
нормализованы и разбиты на цепочки дополнительных подтаблиц по иерархии
(например, таблица фактов связана с таблицей «Товары», та ссылается на
«Категории», а она - на «Бренды»). Такой подход
избавляет от дублирования текста и экономит дисковое пространство, но
усложняет структуру базы и замедляет сборку отчетов из-за необходимости
выполнять многоступенчатые объединения (JOIN).
Наполнение
хранилища информацией из разрозненных рабочих систем происходит с помощью
регулярного автоматизированного конвейера ETL, состоящего из трех
последовательных этапов:
- Extract (Извлечение) - подключение к первичным источникам и чтение «сырых» данных из
систем ERP и CRM, бухгалтерских баз, таблиц Excel, веб-логов или внешних
API-сервисов. Извлечение обычно настраивается по расписанию (например,
ночью) или забирает только изменения за день, чтобы не перегружать рабочие
серверы.
- Transform (Преобразование) - самый трудоемкий этап, на котором данные в промежуточной области
приводятся в порядок перед анализом. Здесь происходит очистка от пустых
значений (NULL), опечаток и дубликатов, приведение дат, валют и типов
данных к единому стандарту, расчет новых производных столбцов (например, чистой
маржи или НДС), а также замена внутренних бизнес-ключей из разных систем
на единые суррогатные ключи (числовые идентификаторы самого хранилища).
- Load (Загрузка) - финальная запись очищенных, проверенных и структурированных данных
в целевые таблицы хранилища (в схему «Звезда» или «Снежинка») либо в
специализированные тематические витрины данных (Data Marts), откуда их
сразу могут забирать системы бизнес-аналитики (BI) и СППР для построения
отчетов и дашбордов.