Введение
Витрина данных (Data Mart) – предметно-ориентированная реляционная структура, содержащая подмножество корпоративного хранилища данных, оптимизированное для аналитических запросов конкретного подразделения. Финансовая витрина содержит P&L, баланс, движение денежных средств; витрина продаж – транзакции, воронку, выполнение планов; HR-витрина – численность, текучесть, фонд оплаты труда.
В отличие от нормализованного детального слоя DWH, витрины используют денормализованные схемы «звезда» (Star Schema) или «снежинка» (Snowflake Schema) для максимальной скорости аналитических запросов с группировками. Именно из витрин BI-инструменты, дашборды, отчёты и OLAP-кубы получают данные для конечных пользователей.
История и контекст
Концепцию Data Mart популяризировал Ральф Кимбалл в 1990-х как альтернативу монолитному корпоративному DWH Билла Инмона. Кимбалл предлагал строить хранилище «снизу вверх»: сначала создать независимые витрины для отдельных бизнес-процессов (заказы, запасы, финансы), а затем интегрировать их через «шину конформных измерений». Инмон предлагал обратный порядок: сначала нормализованное централизованное хранилище, затем витрины.
Сегодня «война Кимбалла и Инмона» завершилась компромиссом: большинство реальных архитектур используют централизованный Core DWH как источник истины и предметные витрины для конечного потребления в BI. На российском рынке витрины активно строятся на базе ClickHouse, Arenadata DB и облачных СУБД.
Как это работает
Витрина строится на основе схемы «звезда»: в центре – таблица фактов с числовыми показателями (суммы, количества, веса), вокруг – таблицы измерений (время, продукт, регион, клиент, сотрудник).
- Таблица фактов содержит транзакционные или периодические снапшоты: строки продаж, бухгалтерские проводки, клики на сайте.
- Таблицы измерений дают контекст: атрибуты товара, иерархию географии (город → регион → страна), характеристики клиента.
- Агрегаты – предвычисленные суммы по часто запрашиваемым срезам для ускорения запросов.
Данные в витрину поступают из Core DWH через ETL/ELT-процессы. Обновление бывает полным (full reload) или инкрементальным – только новые и изменённые записи через CDC или watermark по дате последнего изменения.
Выделяют три типа витрин:
- Dependent Data Mart – получает данные только из централизованного DWH. Обеспечивает единую версию правды.
- Independent Data Mart – загружает данные напрямую из источников, минуя DWH. Антипаттерн для крупных организаций.
- Hybrid Data Mart – комбинирует оба источника.
Где применяется
- Финансы: финансовая витрина для подготовки управленческой отчётности, МСФО, плана-факта.
- Продажи и маркетинг: анализ воронки продаж, эффективности каналов, когортный анализ клиентов.
- Логистика: мониторинг запасов, отгрузок, SLA поставщиков.
- HR: витрина персонала для анализа текучести, планирования ФОТ.
- Банки: витрины для регуляторной отчётности ЦБ (форма 101, 123) и внутреннего управленческого учёта.
Преимущества и ограничения
Преимущества: высокая скорость аналитических запросов благодаря денормализации; независимость подразделений – каждая команда получает свою витрину с нужными метриками; упрощение работы BI-инструментов без сложных JOIN.
Ограничения: риск расхождения показателей между витринами при независимой разработке (проблема «нескольких версий правды»); дублирование данных увеличивает объём хранилища; сложность поддержки при изменении бизнес-логики расчётов.
Связь с другими понятиями
DWH (хранилище данных) – источник, из которого питаются витрины. Слой данных – витрина является верхним слоем многоуровневой архитектуры. OLAP-куб часто строится поверх витрины для многомерного анализа. Семантический слой добавляет бизнес-метрики поверх витрины для BI-инструментов. ETL/ELT – механизм наполнения витрины данными из Core DWH.