В начало

Лекция 24

Многомерная модель хранилища.

Кубы фактов.  Схемы «звезда», «снежинка»

 

На сегодняшний день термин OLAP (Online Analytical Processing) используется для обозначения автоматизированных технологий сложного (многомерного) анализа данных (слайд 2). Чаще всего они применятся в крупных коммерческих компаниях для анализа бизнес-информации (продажи, маркетинг и т.п.) и составления так называемых бизнес-отчетов. Основной задачей OLAP-технологий является анализ динамики переменных (показателей) одновременно по нескольким измерениям. Неформальный анализ такой динамики помогает выявить скрытые закономерности, тренды.

Совместно с термином OLAP часто используется другой термин – data mining (извлечение данных, интеллектуальный анализ данных). Он используется для обозначения автоматизированных технологий выявления скрытых закономерностей между переменными (обычно на основе большого массива данных). Если OLAP-технологии представляют собой инструмент для неформальной обработки данных, то data mining напротив ориентирован на формализацию анализа данных. В его основе лежат статистические и другие методы (в том числе методы машинного обучения). Типовыми задачами data mining являются: классификация, кластеризация, регрессия, ассоциация, прогнозирование, анализ отклонений.

 

24.1. Многомерные схемы данных

В основе OLAP лежат понятия факта, параметра, измерения (слайд 3). Под фактом понимаются:

        факты, связанные с транзакциями (например, выставление оценки студенту преподавателем при приеме экзамена);

        общие фактографические данные – «мгновенные снимки» (например, результаты сессии);

        частные фактографические данные (например, домашний адрес преподавателя);

        события или состояния объекта (например, успешная сдача сессии студентом).

Под параметром понимается значение факта (обычно, числовое или иное формальное). Например, отличная оценка для факта транзакции или средний балл за сессию для студента. Под измерением понимается: шкала, по которой выстраиваются факты (например, шкала оценок за экзамены или шкала семестров). Измерения могут образовывать иерархии. Это используется при выполнении таких операций, как drill-down и roll-up (подробнее об этом – ниже).

На основе таких данных строится специальная многомерная структура данных, именуемая OLAP-кубом. На слайде 4 приведен пример такого OLAP-куба для задачи «Сессия». Он позволяет узнать: оценки студента по дисциплинам, средний балл студента по дисциплине (в семестре), средний балл студентов в семестре (по всем дисциплинам) и так далее. Можно ввести такие иерархии измерений (см. Рис.1), как: курс – семестры, вид дисциплины (технические, гуманитарные и т.п.) – названия дисциплин, учебная группа – студенты (этой группы).

При этом одной из наиболее сложных проблем является организация (представления) данных для анализа таким образом (в таком виде), чтобы оптимизировать сам процесс анализа (составление и обработку запросов к данным). Хранение данных реализуется одним из трех способов (слайд5):

1)         реляционным (Relational OLAP – ROLAP);

2)         многомерным (Multidimensional OLAP – MOLAP);

3)         гибридным (Hybrid OLAP – HOLAP).

В первом случае (ROLAP - слайд 6) исходные данные и их многомерное представление хранятся в реляционной базе данных. При этом необходимо специальным образом спроектировать (перепроектировать) структуру базы данных. Обработке запроса предшествует подготовка данных. Она может проводиться в оперативном или в «регулярном» режиме. В оперативном режиме (R-ROLAPReal-time ROLAP - слайд 7) перед обработкой запроса делается «снимок» реляционной базы данных. Затем данные структурируются и представляются в виде, удобном для обработки запросов (создается OLAP-куб). В «регулярном» режиме новые данные (а также изменения), сразу копируются и в специальную структуру. Этот подход считается масштабируемым решением. Его недостатком является сложность проектирования структуры, а также сложность и невысокая эффективность запросов на языке SQL.

Во втором случае (MOLAPслайд 8) данные и их многомерное представление хранятся в специальной многомерной базе данных в оптимизированном многомерном формате (так называемая схема-снежинка). Этот подход хорошо работает в условиях небольшого набора данных. Его недостатком является дороговизна решения и возможная неэффективность выполнения «обычных» запросов  к базе данных (в рамках повседневного функционирования предприятия).

Третий случай (HOLAPслайд 9) предполагает хранение данных в реляционной базе данных, а их многомерное представление – в специальной многомерной базе данных. Этот подход занимает промежуточное положение между двумя предыдущими. В настоящее время он получил широкое распространение. Он не требует специального изменения структуры исходной базы данных. Его недостатком является необходимость поддержки обеих баз в синхронном состоянии.

В OLAP-системах на основе реляционной модели данных (ROLAP) чаще всего используются две схемы: «звезда» и «снежинка». Они отличаются способами поддержки иерархии измерений.

Схема «звезда» (слайд 10) предполагает создание отдельной таблицы для каждого измерения. Она обладает некоторой избыточностью данных, но ее структура достаточно прозрачна.

Схема «снежинка» (слайд 11) – отдельной таблицы для каждого уровня измерения. Ее структура более сложная, но практически не обладает излишней избыточностью.

Выбор схемы зависит от задач анализа. Очевидно, что во всех случаях за оперативность обработки данных приходится расплачиваться объемами самой базы данных. Кроме того, проблема заключается в обеспечении полноты и непротиворечивости самих исходных данных (OLAP-технологии особенно к ним чувствительны).

24.2. Запросы к многомерным данным (слайд 12)

Основная сложность применения OLAP-систем заключается в разработке запросов. Они представляют собой специфические конструкции и, поэтому, язык SQL часто оказывается невыразительным и неэффективным.

Выделяют следующие виды запросов к многомерной базе данных:

1.      Slice-and-dice. Выбор, сокращающий OLAP-куб (например, сечение путем фиксации значения измерения). Для куба на слайде 4, например, «студент» = «Иванов В.П.».

2.      Drill-down. Декомпозиция на основе иерархии измерения. Например, развертка средней оценки для учебной группы в ряд средних оценок по студентам группы.

3.      Roll-up. Свертка на основе иерархии измерения. Операция, обратная drill-down. Например, свертка средних оценок за семестр в среднюю оценку за курс.

4.      Drill-across. Комбинирование (соединение) OLAP-кубов, имеющих общие измерения. Аналог оператора join в реляционной алгебре.

5.      Ranking. Выбор ячеек, появляющихся в верхней или, наоборот, нижней части специально отсортированного списка. Например, лучшие оценки за экзамены.

6.      Rotating. «Поворот» OLAP-куба, дающий возможность увидеть данные, сгруппированные по другим измерениям.

Большинство современных OLAP-продуктов поставляется с заранее составленными запросами. В настоящее время ведется разработка специальных языков запросов. Один из них – MDX (Multidimensional Expressions), разработанный компанией Microsoft.

Современные среды разработки языков программирования высокого уровня часто содержат готовые компоненты для OLAP-технологий. Например, в среде Borland Delphi v.7 имеется панель компонентов «Decision Cube». Она содержит такие компоненты как: гиперкуб, запрос к гиперкубу, многомерный источник данных, табличное представление гиперкуба, графическое представление гиперкуба.