Обсудить
бизнес-задачи

Сравнительный анализ подходов к моделированию DWH:
Dimensional Modeling (Снежинка), Data Vault 2.0, Anchor Modeling

блог о bi, №1 в рунете
Хранилища данных (DWH) играют ключевую роль в поддержке аналитических и бизнес-решений, предоставляя структурированные данные для отчетов и анализа. Правильное моделирование данных критически важно для успешного функционирования DWH.
В данной статье мы сравним три популярных подхода к моделированию: Anchor Modeling, Data Vault 2.0 и модель «Снежинка». Будут рассмотрены их основные концепции, преимущества, недостатки и области применения, чтобы правильно выбрать подход, который лучше всего соответствует требованиям бизнеса.

Снежинка

Снежинка – модель данных, в основе которой лежит два типа таблиц: факты и измерения. Первые служат для определения количественных данных (событий) – метрики или показатели системы, а вторые – для создания контекста фактов (где, когда, в каком формате произошли события). Эти же понятия используются и на слое витрин данных – уровень, ориентированный на предоставление удобной структуры для аналитики и создания отчетов.
Рисунок 1 - пример ER-диаграммы для Dimensional Modeling.
В центре расположена таблица факта "Чек" (событие продажи), которая связана с таблицами измерений.

Data Vault 2.0

Data Vault 2.0 – более гибкая методология, предназначенная для обеспечения масштабируемости и отслеживания изменений в данных (историчность).
Основными понятиями модели являются:
  • Хаб или концентратор (Hub) – сущность или событие в бизнесе. Содержит бизнес-ключ, хэш-ключ, ссылку на источник и дату добавления записи. Хаб может быть связан только с линком или сателлитом.
  • Линк (Link) – отношения между хабами. Содержат хэш-ключи связанных друг с другом сущностей, ссылку на источник и дату добавления записи. Могут быть связаны с хабами и сателлитами.
  • Сателлит или спутник (Satellite) – контекстные данные для сущностей и связей, изменяемые атрибуты, связаны с хабами и линками.
Рисунок 2 – ER-диаграмма для Data Vault 2.0.
Зеленым цветом отмечены хабы, голубым – линки, серым – спутники.

Anchor Modeling

Anchor Modeling (Якорное моделирование) – гибкая методология, предназначенная для работы с данными, постоянно меняющимися по структуре. Поддерживает полную историчность.
Ключевые понятия модели:
  • Якорь (Anchor) – бизнес-сущность, событие. Содержит только суррогатные ключи, ссылку на источник и время добавления записи.
  • Линк (Link) – сущность, аналогичная линку из Data Vault 2.0 с небольшими изменениями: не может иметь спутники (атрибуты)
  • Атрибут (Attribute) – моделирует контекст для якорей, содержит их характеристики. Отличительная особенность – для каждого атрибута (название, цвет, пол и др.) должна быть создана отдельная таблица.
Рисунок 3 – ER-диаграмма фрагмента для Anchor Modeling.
Сине-зеленым цветом отмечены якоря, зеленым – линки, оранжевым – атрибуты якорей.

Преимущества и недостатки моделей

Снежинка

Модель предназначена для регламентированных аналитических систем, не требующих изменений (по крайней мере, частых) в структуре данных.
  • Простота реализации, низкий порог входа для специалистов – модель является интуитивно понятной
  • Высокая производительность запросов, благодаря небольшому количеству таблиц и соединений между ними
  • Низкая масштабируемость, сложность во введении новых источников данных
  • Дублирование данных и null значения, что приводит к увеличению объема хранилища и сложности обновления данных

Data Vault 2.0

Модель создана для работы с системами, требующими поддержки историчности данных и системами, меняющимися со временем.
  • Гибкость и масштабируемость, легкость в добавлении новых источников данных
  • Полная поддержка историчности
  • Более сложная структура, что влечет за собой трудности в разработке etl-процессов
  • Снижение производительности из-за большего числа таблиц и их соединений

Anchor Modeling

Модель подходит для быстро развивающегося бизнеса, для систем с частыми изменениями и обновлениями.
  • Легкость в поддержке любых изменений в структуре данных
  • Поддержка полной историчности
  • Низкая избыточность данных благодаря высокой степени нормализации (нет дублирования, нет null значений)
  • Высокий порог входа для специалистов, сложность в понимании концепции
  • Низкая производительность даже базовых запросов
  • Требование к автоматизированному созданию сущностей (атрибутов, якорей, линков)

Сравнительный анализ моделей

Таблица 1 - Сравнение по ключевым критериям

Тестирование производительности по чтению данных

Для проведения анализа были выбраны следующие типовые запросы:

  1. Вывод всей таблицы факта «Чеки».
  2. Вывод отчёта за 3 месяца по магазинам для план/факт анализа.
  3. Вывод отчета ABC анализа.

Запросы производились в тестовой среде с общим количеством записей в таблице факта «Чеки» ~2.5 миллиона. Для 2-го и 3-го запросов дополнительно использовались измерения «Товары» (26.3 тыс. строк), «Магазины» (32 строки), «Группы товаров» (983 строки).

Результаты работы запросов:
Таблица 2 – Время выполнения
Таблица 3 – Используемая память
Таблица 4 – Чтение в байтах
Таблица 5 – Чтение в мегабайтах

Выводы

Таким образом, каждая из методологий обладает своими преимуществами и недостатками, отвечает определенным задачам бизнеса и при правильном выборе позволяет повысить эффективность DWH.

Anchor Modeling обладает высокой гибкостью и устойчивостью к изменениям благодаря своей атомарной структуре. Этот подход идеально подходит для систем, где данные и бизнес-требования часто меняются, обеспечивая легкость в адаптации.

Data Vault 2.0 также характеризуется высокой устойчивостью и модульностью. Его структура позволяет эффективно управлять историей и обеспечивать целостность данных даже в условиях частых изменений. Этот подход особенно хорошо зарекомендовал себя для корпоративных хранилищ данных, где важна прослеживаемость данных и их интеграция из множества источников.

Снежинка, напротив, лучше подходит для стабильных аналитических систем. Её высокая сравнительно более низкая степень нормализации обеспечивает производительность аналитических запросов. Однако её недостатки проявляются в условиях частых изменений — модификация структуры может потребовать значительных усилий и затронуть связанную часть модели.