Введение в OLAP и хранилища данных

Варианты реализации Хранилищ данных

Рассматриваются варианты реализации хранилищ данных. Логика изложения идет от виртуального хранилища к корпоративной фабрике Инмона, затем к хранилищу Кимбалла и гибридной архитектуре. Показано, где хранятся данные, как формируются аналитические структуры, какие компромиссы возникают между полнотой истории, скоростью запросов, стоимостью и устойчивостью. В конце обозначен переход к форматам хранения данных в OLAP-кубах.

Основные мысли

В результате изучения лекции слушатель будет способен:
1. Объяснять назначение и ключевые отличия вариантов реализации хранилищ данных.
2. Сравнивать виртуальное хранилище, подходы Инмона, Кимбалла и гибридную архитектуру по полноте данных, скорости аналитики и стоимости.
3. Определять роль ODS, 3НФ, витрин данных, схем «звезда» и «снежинка» в разных архитектурах.
4. Анализировать причины ограничений: недоступность ODS, несогласованность форматов, потерю ретроспективы, рост времени запросов.
5. Оценивать компромиссы при выборе архитектуры хранилища для практических задач.
6. Идентифицировать особенности гибридного хранилища и способы экономии памяти при частичном наполнении OLAP-куба.
Показывать лекцию целиком
Краткое изложение

Варианты реализации хранилищ данных

Виртуальное хранилище данных

В отличие от физического хранилища, где собранные и согласованные данные записываются на носитель, в виртуальном хранилище данных физического уровня хранения нет. Есть только ОДС (Operational Data Store, ODS) — операционное хранилище, промежуточный слой согласованных текущих данных. При обращении к хранилищу ODS «на лету» формирует нужную структуру в оперативной памяти и передаёт её клиенту. Многомерная модель и OLAP-куб (Online Analytical Processing cube) физически нигде не хранятся. В ODS данные из первичных источников слиты и согласованы в рамках третьей нормальной формы (3НФ), а затем преобразуются в структуры, удобные для анализа.

Достоинства:

Недостатки:

Хранилище же предназначено для накопления истории и ретроспективного анализа.

Корпоративная фабрика Инмона

Хранилище Инмона (Inmon) — корпоративная фабрика, включающая OLTP-системы (Online Transaction Processing), ODS, центральное хранилище, витрины данных и систему Data Mining (интеллектуального анализа данных). ODS накапливают временные срезы процессов, согласуют данные и передают их в хранилище, чтобы история не терялась. В ODS информация более детализирована; в хранилище могут применяться разные уровни агрегации.

Этапы:

  1. Извлечение данных из первичных источников.
  2. Загрузка в реляционную базу в 3НФ.
  3. Использование нормализованного хранилища для наполнения презентационных репозиториев.
  4. Построение витрин данных и проведение Data Mining.

Пользователь при запросе к хранилищу Инмона фактически работает с большой нормализованной моделью, которая «на лету» перестраивается под анализ. Хранится всё, как есть, но время аналитических запросов растёт.

Хранилище Кимбалла

В хранилище Кимбалла (Kimball) используется многомерная модель «звезда» и «снежинка». Данные из первичных источников не сохраняются как есть в 3НФ: при перемещении и согласовании они сразу перестраиваются в схему «звезда» или «снежинка». Проводится агрегация и углубление информации под будущие аналитические запросы.

Архитектура двухуровневая: подготовка данных и само хранилище. Пользователь видит «звезду» или «снежинку», но не видит исходные данные. При переходе от первичных источников часть информации теряется: аналитика строится только на выбранных данных. Зато они хранятся в форме, ускоряющей анализ. Хранилище Кимбалла — это, по сути, коллекция витрин данных (Data Marts), под каждый запрос используется своя витрина.

Гибридное хранилище данных

Гибридное хранилище — трёхуровневая архитектура, совмещающая подходы Инмона и Кимбалла. На первом уровне хранится нормализованное корпоративное хранилище на базе 3НФ, которое не оптимизирует запросы. На втором уровне создаются витрины данных, согласованные с OLAP-концепцией (Online Analytical Processing). На третьем уровне находятся клиентские рабочие машины бизнес-аналитиков, которые выполняют запросы, строят прогнозы и помогают руководителям принимать решения.

Гибридное хранилище самое дорогое: по деньгам, реализации, памяти. Оно даёт доступ ко всей информации за счёт нормализованного слоя и оптимальную аналитику за счёт подготовленных витрин. Чтобы экономить память, OLAP-куб иногда наполняют не полностью; структура витрины жёсткая, но данные дозаполняются из нормализованного хранилища при поступлении запроса. Иначе возникает полное дублирование информации в разных формах.

Формат хранения данных в OLAP-кубах

Далее предполагается рассмотреть три подхода к хранению данных внутри OLAP-кубов, но в представленном материале они только обозначены.

Краткие итоги

Выбор архитектуры хранилища данных — это не выбор одной «лучшей» технологии, а согласование противоречивых требований: полноты исторических данных, скорости аналитических запросов, стоимости хранения и устойчивости к отказам. Виртуальная схема полезна там, где важны текущее состояние и максимальная детализация, а объемы нужно экономить. Однако отсутствие физического слоя переносит всю нагрузку на доступность ODS и ограничивает ретроспективу: история живёт в первичных системах лишь ограниченное время. Поэтому такая схема подходит для оперативного мониторинга, но плохо подходит для глубокого анализа за длительные периоды.

Подход Инмона решает проблему полноты: данные из первичных источников стекаются через ODS в центральное нормализованное хранилище, где сохраняются в 3НФ. Это даёт согласованность и возможность строить витрины и Data Mining. Но плата — сложность и замедление запросов, потому что аналитическую модель приходится перестраивать на лету. На практике такой подход выбирают, когда важнее единая корпоративная картина и сохранение всей истории, чем мгновенный отклик.

Подход Кимбалла делает ставку на скорость и удобство анализа: данные сразу преобразуются в звезду или снежинку, а хранилище становится коллекцией витрин. Часть исходной информации при этом теряется, зато аналитик работает с подготовленной моделью. Это оправдано, когда круг аналитических вопросов относительно стабилен и важнее производительность, чем хранение всех деталей.

Гибридная архитектура пытается совместить полноту и скорость: нормализованный слой хранит всю информацию, а слой витрин ускоряет аналитику. Такой вариант самый дорогой, поэтому на практике применяют компромисс — витрины или OLAP-куб наполняют частично, дозаполняя их из нормализованного хранилища по запросу. Итоговая логика выбора сводится к тому, что важнее в конкретной системе: актуальность, полнота истории, скорость анализа или бюджет.

Виртуальное хранилище данных не имеет физического уровня хранения. Есть только ODS (Operational Data Store) — операционное хранилище. При запросе ODS «на лету» строит нужную структуру в оперативной памяти и отдаёт клиенту. Многомерная модель и OLAP-куб физически не хранятся. В ODS данные из первичных источников слиты и согласованы в 3НФ, затем преобразуются для анализа.

Плюсы: экономия дискового пространства, работа с текущими детализированными данными. Минусы: растёт время обработки; ODS должен быть постоянно доступен; разные ODS могут иметь разные форматы и давать несогласованность; нет глубокой ретроспективы, потому что первичные источники хранят историю ограниченное время.

Хранилище Инмона (Inmon) — корпоративная фабрика. В неё входят OLTP-системы, ODS, центральное хранилище, витрины данных и Data Mining. ODS накапливают временные срезы, согласуют данные и передают их в хранилище. В ODS информация детализирована, в хранилище возможна агрегация. Этапы: извлечение данных, загрузка в реляционную базу в 3НФ, наполнение презентационных репозиториев, построение витрин и Data Mining. Пользователь работает с большой нормализованной моделью, которая перестраивается под анализ. Хранится всё, как есть, но аналитические запросы замедляются.

Хранилище Кимбалла (Kimball) использует многомерную модель «звезда» и «снежинка». Данные не сохраняются в 3НФ как есть: при перемещении и согласовании они сразу преобразуются в звезду или снежинку. Проводится агрегация под аналитические запросы. Архитектура двухуровневая: подготовка данных и хранилище. Пользователь видит звезду или снежинку, но не исходные данные. Часть информации теряется, зато аналитика ускоряется. Хранилище Кимбалла — коллекция витрин данных (Data Marts).

Гибридное хранилище — трёхуровневая архитектура, совмещающая Инмона и Кимбалла. Первый уровень — нормализованное корпоративное хранилище на базе 3НФ. Второй — витрины данных, согласованные с OLAP-концепцией (Online Analytical Processing). Третий — клиентские машины бизнес-аналитиков, которые строят прогнозы и помогают принимать решения. Гибрид самое дорогое хранилище, но даёт полноту данных и скорость аналитики. Для экономии памяти OLAP-куб иногда наполняют не полностью: структура витрины жёсткая, но данные дозаполняются из нормализованного хранилища при запросе. Иначе возникает полное дублирование информации.

Далее обозначен переход к трём подходам хранения данных внутри OLAP-кубов, но в представленном материале они не раскрыты.

Выводы

1. Виртуальное хранилище не хранит физический слой данных: ODS формирует нужную структуру в оперативной памяти по запросу.
2. Достоинства виртуального хранилища — экономия объёма и работа с текущими детализированными данными.
3. Недостатки виртуального хранилища — рост времени обработки, зависимость от доступности ODS, несогласованность форматов и потеря ретроспективы.
4. Хранилище Инмона включает OLTP, ODS, центральное хранилище, витрины и Data Mining.
5. В хранилище Инмона данные сохраняются в реляционной 3НФ, что даёт полноту, но замедляет аналитические запросы.
6. В подходе Кимбалла данные сразу преобразуются в звезду или снежинку, а часть исходной информации теряется.
7. Хранилище Кимбалла — коллекция витрин данных, ориентированных на аналитические запросы.
8. Гибридное хранилище совмещает нормализованный слой Инмона и витрины Кимбалла.
9. Гибридное хранилище самое дорогое, но даёт полноту данных и скорость аналитики.
10. Для экономии памяти витрину или OLAP-куб наполняют частично и дозаполняют из нормализованного хранилища при запросе.

Вопросы для самопроверки

1. Чем виртуальное хранилище отличается от физического?
2. Где хранится многомерная модель в виртуальном хранилище?
3. Какие достоинства виртуального хранилища?
4. Почему виртуальное хранилище не даёт глубокой ретроспективы?
5. Что входит в корпоративную фабрику Инмона?
6. Какую роль играют ODS в хранилище Инмона?
7. Какие этапы загрузки в хранилище Инмона?
8. Почему запросы в хранилище Инмона могут быть медленными?
9. Какая модель используется в хранилище Кимбалла?
10. Что происходит с частью информации в подходе Кимбалла?
11. Что такое витрина данных в контексте Кимбалла?
12. Какие уровни и компромиссы есть в гибридном хранилище?
Вернуться к учебному плану