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

OLAP-куб. Введение

В лекции рассматривается переход от ETL-процедур и схемы «снежинка» к OLAP-кубу. Показано, как данные из источников попадают в хранилище, затем в витрины. Объясняется роль куба: быстрые срезы, агрегаты, иерархии и сортировка. Разбирается MOLAP-хранение и создание проекта куба в Visual Studio Data Tools.

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

В результате изучения лекции слушатель будет способен:
1. Объяснять место OLAP-куба между хранилищем данных и витриной.
2. Различать ETL-процедуры, схему «снежинка», OLAP-куб и MOLAP.
3. Описывать логику построения куба на основе готовой снежинки и бизнес-задачи.
4. Выбирать MOLAP для быстрой аналитической работы.
5. Создавать проект OLAP-куба в Visual Studio Data Tools.
6. Определять назначение компонентов проекта: источников данных, представлений, измерений и куба.
7. Анализировать возможности интеграции Data Mining и ролей в проект куба.
Показывать лекцию целиком
Краткое изложение

1. От ETL к OLAP-кубу

Мы продолжаем курс «Введение в OLAP и хранилища данных». Ранее были созданы ETL-процедуры (Extract, Transform, Load — извлечение, преобразование, загрузка). Они собирают данные из разных источников: баз данных, отдельных файлов, удалённых сервисов, например котировок. Затем информация попадает в хранилище данных (Data Warehouse, DWH), где хранится по определённой архитектуре.

В практической работе использовалась схема «снежинка» (snowflake schema). Это централизованное хранилище с таблицами измерений (dimensions) и таблицами фактов (fact tables). Состав измерений и фактов зависит от бизнес-задач. Бизнес-аналитик заказывает витрину данных (data mart), а администратор хранилища формирует набор измерений и фактов для неё. Так как аналитиков несколько, витрины могут пересекаться. Поэтому измерения и факты создаются шире — для обслуживания нескольких витрин.

В классическом подходе Инмона (Inmon) централизованное хранилище хранит данные в нормализованном виде. В подходе Кимбалла (Kimball) акцент делается на dimensional modeling — измерения и факты, звезду или снежинку и витрины для быстрой аналитики. В практической работе выбран второй путь: заранее готовится снежинка под витрину, чтобы быстро получать аналитические срезы.

2. Зачем нужен OLAP-куб

Между снежинкой и витриной находится OLAP-куб (On-Line Analytical Processing — оперативная аналитическая обработка). Он:

Исходные данные сами по себе не знают, как их агрегировать и сопоставлять. Куб добавляет к хранению интеллектуальную компоненту: метаданные и правила анализа. Задача куба — дать аналитику быстрый и удобный доступ к информации.

Для построения куба нужны:

3. MOLAP и хранение куба

OLAP-куб — не только настройка программы. Данные могут храниться не в исходных плоских реляционных таблицах, а в MOLAP (Multidimensional OLAP — многомерный OLAP). MOLAP хранит информацию в виде многомерных массивов, часто отдельно на сервере.

Схема такая: в одном секторе хранилища находится снежинка, в другом — собранный OLAP-куб. К кубу подключаются BI-системы (Business Intelligence — бизнес-аналитика) и выгружают данные для бизнес-аналитика.

4. Создание проекта куба в Visual Studio Data Tools

Создать OLAP-куб на базе SQL Server проще всего в Visual Studio Data Tools. Можно использовать не полную Visual Studio, а компонент Data Tools. В Visual Studio 2019 он интегрирован, в 2017 может идти отдельно.

Порядок:

  1. Выбрать New Project.
  2. В шаблонах выбрать Analysis Services.
  3. Среди проектов выбрать MOLAP / Multidimensional, а не ROLAP.
  4. Задать имя, например OLAP_Test.
  5. Нажать OK.

Создаётся пустой проект с заготовками компонентов.

5. Структура проекта

Для базового задания используются источник, представления, куб и измерения. Data Mining и роли можно рассмотреть отдельно. В Data Mining доступны алгоритмы кластеризации, нейронных сетей, деревьев решений, наивного байесовского подхода, линейной регрессии и другие. Их можно интегрировать в куб и поставлять вместе с аналитикой.

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

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

Куб не просто ускоряет запросы. Он задаёт семантику данных: какие показатели можно суммировать, как связаны измерения, какие иерархии доступны, как сортировать и фильтровать срезы. Это снижает нагрузку на аналитика и уменьшает риск разночтений в отчётах. Выбор MOLAP усиливает скорость за счёт многомерного хранения, но требует отдельного серверного слоя и предварительной подготовки. Поэтому такая архитектура эффективна там, где бизнес готов инвестировать в инфраструктуру ради оперативных и повторяемых решений.

Создание куба в Visual Studio Data Tools показывает, что аналитическая система — это не один отчёт и не одна таблица, а проект с чёткой структурой. Подключения, представления, измерения и сам куб разделены, что упрощает сопровождение. Дополнительные компоненты — Data Mining и роли — расширяют систему: первая добавляет прогнозные и классификационные модели, вторая управляет доступом. В результате аналитик получает быстрый доступ к согласованным данным, администратор — управляемую среду, а бизнес — основу для решений, где скорость и точность важнее первичной детализации.

Контекст

После создания ETL-процедур данные из разных источников — баз данных, файлов, удалённых сервисов — собираются в хранилище данных. В практической работе используется схема «снежинка»: таблицы измерений и таблицы фактов. Их состав зависит от бизнес-задач. Бизнес-аналитик заказывает витрину данных, а администратор хранилища формирует измерения и факты. Так как витрин несколько и они пересекаются, измерения и факты создаются шире.

В классическом подходе Инмона хранилище нормализовано. В подходе Кимбалла акцент на измерениях, фактах и витринах для быстрой аналитики. В практике выбран второй путь.

OLAP-куб

Между снежинкой и витриной находится OLAP-куб. Он:

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

MOLAP

Данные куба могут храниться в MOLAP — многомерных массивах, часто отдельно на сервере. В хранилище есть сектор со снежинкой и сектор с кубом. К кубу подключаются BI-системы и выгружают данные аналитику.

Создание куба

Проект создаётся в Visual Studio Data Tools. В шаблонах выбирается Analysis Services, затем MOLAP / Multidimensional. После создания проекта доступны компоненты:

Для базового задания используются источник, представления, куб и измерения. Data Mining и роли можно рассмотреть отдельно. В Data Mining есть алгоритмы кластеризации, нейронных сетей, деревьев решений, наивного байесовского подхода и линейной регрессии. Их можно

Выводы

1. ETL-процедуры собирают данные из разных источников в хранилище.
2. В практической работе используется схема «снежинка».
3. Состав измерений и фактов определяется бизнес-задачами.
4. Витрина данных — заказ бизнес-аналитика.
5. Пересекающиеся витрины обслуживаются общими измерениями и фактами.
6. OLAP-куб находится между снежинкой и витриной.
7. Куб автоматизирует агрегацию, сортировку и иерархии.
8. Куб насыщает хранение интеллектуальной компонентой.
9. Для куба нужны готовая снежинка и понимание витрины.
10. MOLAP хранит данные в многомерных массивах на сервере.
11. BI-системы подключаются к кубу для выгрузки данных.
12. Проект куба создаётся в Visual Studio Data Tools через Analysis Services.

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

1. Какую роль выполняют ETL-процедуры в хранилище данных?
2. Почему в практической работе выбрана схема «снежинка», а не плоские таблицы?
3. Чем определяется состав измерений и таблиц фактов?
4. Что такое витрина данных и кто её заказывает?
5. Почему измерения и факты создаются шире, чем для одной витрины?
6. Какие задачи решает OLAP-куб между снежинкой и витриной?
7. Что означает «насыщение схемы хранения интеллектуальной компонентой»?
8. Какие два условия нужны для построения OLAP-куба?
9. В чём особенность MOLAP-хранения?
10. Как взаимодействуют хранилище, OLAP-куб и BI-системы?
11. Какие компоненты есть в проекте OLAP-куба в Data Tools?
12. Для чего в проекте предназначены Mining Structures и Roles?
Вернуться к учебному плану