Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Хранилища данных и OLAP-технологии. Учебное пособие.pdf
X
- •Оглавление
- •1.1. Краткая история развития технологий ХД
- •1.2. Источники данных для ХД
- •1.3. Основные свойства хранилищ данных
- •1.4. Структура данных в хранилище
- •1.5. Операции над данными в хранилище
- •1.6. Витрины данных
- •1.7. Виртуальные хранилища данных
- •1.8. Практический пример построения ХД в АП Deductor
- •Вопросы для самопроверки
- •2.1. Методы обнаружения проблем в данных
- •2.2. Методы очистки данных
- •2.3. Пример очистки данных в АП Deductor
- •3. OLAP-технологии
- •3.1. Цели и задачи OLAP
- •3.2. Представление данных в виде гиперкубов
- •3.3. Пример работы с OLAP-системой в АП Deductor
- •Библиографический список

51
Процедура построения OLAP-куба начинается с загрузки дан-
ных из различных источников и их преобразования во внутренний
формат OLAP-приложения. Необходимость такого преобразования
вызвана следующим. Все столбцы исходных таблиц данных рассматриваются как измерения или факты. При этом логика работы с ними
будет различной. Измерения будут рассматриваться как оси координатной системы, а значения измерений – как координаты. Очевидно,
что при использовании такой модели данных OLAP-куб может оказаться заполненным весьма неравномерно: будет большое количество
точек, которым не будет соответствовать ни одна запись, и наоборот,
будут точки, которым соответствуют несколько записей. Такая ситуация не оптимальна ни с точки зрения быстродействия, ни с точки зрения использования объема памяти. Поэтому при начальной загрузке
данных производится преагрегирование фактов с одновременным объединением записей с одинаковыми значениями измерений. Это позволит в дальнейшем работать с меньшим числом записей.
Виды OLAP. Выделяют три вида OLAP:
- многомерная OLAP (Multidimensional OLAP — MOLAP);
- реляционная OLAP (Relational OLAP — ROLAP);
- гибридная OLAP (Hybrid OLAP — HOLAP).
Самым распространенным видом является MOLAP (он является
классическим и именно его подразумевают, упоминая OLAP). В её
основе лежат многомерные модели данных типа «звезда» или «снежинка».
ROLAP строится на основе реляционной модели данных, в ко-
торой факты и измерения хранятся в реляционных таблицах, а для
хранения агрегатов создаются дополнительные реляционные таблицы.
HOLAP сочетает в себе обе модели данных – многомерную и
реляционную. При этом исходные данные хранятся в реляционных
таблицах, а агрегаты – в многомерных структурах.
Каждый из перечисленных видов имеет свои преимущества и
недостатки. Так, многомерная модель не оптимальна с точки зрения
компактности хранимых данных по сравнению с реляционной моделью. Поэтому MOLAP лучше всего подходит для случаев, когда объем
исходных данных относительно невелик, быстро рассчитывает агрегаты и формирует отчёты. Однако при этом генерируются огромные
дополнительные объёмы данных, что может привести к информационному «взрыву». ROLAP позволяет хранить данные в более компактном виде, но при этом значительно снижается скорость выполнения
запросов из-за необходимости временных затрат на денормализацию
данных. HOLAP позволяет компактно хранить основные данные в ре-

52
ляционных таблицах, а хранение агрегатов в многомерных структурах
позволяет ускорить работу.
В настоящее время технологии OLAP быстро развиваются, и
каждый год разрабатываются новые дополнения к уже существующим
моделям. Поэтому можно говорить о xOLAP (eXtensible OLAP), подразумевая постоянно расширяющийся спектр разнообразных функциональных особенностей данного вида систем.
Примером такого рода расширения является DROLAP (Dense-
Region Based OLAP – OLAP, основанный на плотных областях). Основой DROLAP является использование «плотных областей» в кубах
данных.
Также можно выделить RTOLAP, R-ROLAP или Real-time
ROLAP – ROLAP реального времени (или RAP - Real-Time Analytical
Processing). RTOLAP отличается от обычной ROLAP тем, что для хранения агрегатов не создаются дополнительные реляционные таблицы,
а агрегаты рассчитываются в момент запроса. Следовательно, в многомерном кубе будут храниться только основные данные. При выполнении запроса сервер выбирает данные либо рассчитывает значения.
Все вычисления выполняются «по требованию».
Обзор программных средств OLAP. В настоящее время на
мировом рынке существует несколько десятков поставщиков OLAPпродуктов. При этом каких-либо доминирующих игроков на нём назвать сложно, поскольку многие из них, например Microsoft и Oracle,
активно работают и в других сегментах рынка.
Средства, реализующие функциональность OLAP, могут пред-
ставлять собой как отдельные программные решения, так и OLAPмодули в составе других приложений. Обычно такие приложения относятся к классу Business Intelligence.
В простейшем варианте OLAP-средство может быть настольным. Но такие системы в большинстве случаев имеют множество ограничений, например на количество используемых измерений и иерархий. К таким системам относится, например, продукт PivotTable,
который входит в состав MS Office и позволяет строить OLAP-кубы в
электронных таблицах Excel. Для решения задач корпоративного масштаба используются клиент-серверные технологии, когда сервер извлекает данные из источников (ХД, СУБД), а специализированное
приложение-клиент должно обеспечивать удобный и эффективный
способ визуализации OLAP-кубов. Так, в линейке продуктов Microsoft
серверная часть представлена в лице Microsoft Analysis Services, которые входят в MS SQL Server. Сравнительно недавно в состав MS Office включен OLAP-клиент под названием Microsoft Data Analyzer.

53
Среди ПО, реализующего ROLAP, можно выделить DSS Suite
(MicroStrategy), MetaCube (IBM Informix), Platinum Beacon (Platinum),
Brio, Business Objects, DecisionSuite (Information Advantage), Mondrian,
JasperAnalysis, MicroStrategy 9, Tableau Software, Cognos Powerplay,
Microsoft Analysis Services. Технология MOLAP реализована в системах Cognos Powerplay, Oracle OLAP Option, Oracle Essbase, Microsoft
Analysis Services, TM1, Palo, IdeaSoft O3. Примерами реализации
HOLAP могут служить Microsoft Analysis Services, MicroStrategy, IBM
DB2 OLAP Server, Sagent Holos.
3.3. Пример работы с OLAP-системой в АП Deductor
Ранее мы рассмотрели процесс построения ХД Deductor Warehouse и загрузку данных в него. Аналитическая платформа Deductor
также имеет и встроенный OLAP-модуль, позволяющий оперативно
формировать отчёты на основе кросс-таблиц.
Рассмотрим несложный набор данных, содержащий 4 измерения
(Дата, Город, Покупатель и Товар) и 3 факта (Цена, Количество и
Сумма) и описывающий процесс поставки стройматериалов по различным городам. Фрагмент набора данных представлен на рис. 3.6.
Рис. 3.6. Фрагмент набора данных для построения OLAP-куба
Чтобы приступить к построению OLAP-куба, нужно выделить
узел источника данных в панели «Сценарии» и с помощью кнопки
открыть «Мастер визуализации», где в списке доступных представлений данных отметить пункт «Куб» (рис. 3.7).

54
Рис. 3.7. Выбор OLAP-куба в «Мастере визуализации»
На 3-м шаге «Мастера визуализации» требуется выбрать столбцы источника данных, которые будут использоваться при построении
куба, и определить их назначение (рис. 3.8). В окне на рис. 3.8 представлен список полей источника данных, справа от списка отображаются текущие параметры для выделенного поля в списке: имя, метка,
тип и вид данных, а также назначение поля в OLAP-кубе. При этом
пользователь может выбрать только назначение поля, остальные параметры устанавливаются автоматически и изменены быть не могут.
Рис. 3.8. Настройка назначений полей OLAP-куба
Могут быть установлены следующие назначения полей:
измерение – поле будет использовано в качестве измерения
(все поля строкового типа и типа дата/время по умолчанию устанавливаются как измерения);
факт – поле будет использоваться как факт (все поля число-
вого типа по умолчанию устанавливаются как факты);
неиспользуемое – поле не будет использоваться при по-
строении OLAP-куба;
информационное – поле будет отображаться в итоговых
таблицах, но в куб встраиваться не будет.

55
На 4-м шаге нужно выбрать способ представления измерений: в
строках или колонках (рис. 3.9).
Рис. 3.9. Выбор расположения измерений
Чтобы выбрать способ размещения измерения, нужно «перетащить» его значок из секции «Доступные измерения» на соответствующий значок «Колонки» или «Строки» в секции «Выбранные измерения». В результате, например, секция «Выбранные измерения» примет
вид как на рис. 3.10.
Рис. 3.10. Результат выбора расположения измерений
На 5-м шаге требуется выполнить настройку фактов: выбрать, какие факты будут использоваться при построении куба и какие функции
агрегации к ним должны быть применены (если это необходимо). Общий вид соответствующего окна программы представлен на рис. 3.11.
Рис. 3.11. Настройка фактов.
Чтобы факты из списка «Факты и варианты агрегации» использовались в OLAP-кубе, нужно установить флажки слева от имени факта.

56
Значок «+» позволяет открыть список доступных функций агрегации
(рис. 3.12).
Рис. 3.12. Выбор вариантов агрегирования фактов
Выбор варианта агрегирования производится установкой соответствующего флажка. Но необходимо помнить, что большое количество агрегатов замедляет выполнение запросов и усложняет результирующее представление данных, поэтому выбирать следует только те
способы агрегации, которые действительно необходимы.
После завершения работы Мастера визуализации откроется кросстаблица, которая в нашем случае будет иметь вид, представленный на
рис. 3.13.
Рис. 3.13. Кросс-таблица (начальный вид)
Несложно увидеть, что изначально в кросс-таблице представлены
только агрегаты (в нашем случае - суммы) по каждому факту. Значения
измерений и фактов скрыты. Логика здесь понятна: система «не знает», в
каком именно разрезе данные интересуют аналитика, на какие вопросы
он хочет получить ответы с их помощью, поэтому включает в таблицу
минимум информации и предоставляет возможность пользователю, ма-

57
нипулируя структурой таблицы, самому выбрать наиболее информативное представление.
Рассмотрим средства управления кросс-таблицей (рис. 3.13). В
верхней части таблицы расположена строка, в которой размещены кнопки
с названиями измерений. Слева от каждой кнопки имеются значки «-» и
«+», а справа – «». Значок «+» позволяет разворачивать, а значок «-»
сворачивать отображение значений измерений в таблице. Например, развернув измерение «Дата», мы получим следующее представление (рис.
3.14).
Рис. 3.14. Кросс-таблица с развёрнутым измерением «Дата»
Сравнив представления на рис. 3.13 и 3.14, можем увидеть, что отличие заключается в том, что после разворачивания измерения «Дата» в
кросс-таблицу оказались встроены значения измерения «Город» и теперь
для каждой даты отображаются названия городов, в которые осуществлялись поставки на эту дату. Щелчок по значку «-» для измерения «Дата»
вернёт таблицу в исходное состояние.
Теперь попробуем развернуть измерение «Город», в результате получим представление как на рис. 3.15.
Рис. 3.15. Кросс-таблица с развёрнутым измерением «Город»
Таким образом, развёртывание данного измерения фактически означает отображение в таблице значений измерения, иерархически ему
подчинённого. То есть развёртывание измерения «Дата» приводит к появлению в таблице городов, в которых осуществлялись поставки на соответствующую дату. Развёртывание измерения «Город» приводит к появлению в таблице организаций, расположенных в этих городах (рис. 3.15).
Тогда, следуя этой логике, разворачивая измерение «Получатель», мы
сможем увидеть в таблице наименования товаров, которые получила данная организация в данном городе на соответствующую дату (рис. 3.16).

58
Рис. 3.16. Кросс-таблица после развёртывания измерения «Получатель»
Поскольку для измерения «Товар» иерархически подчинённых ему
измерений нет, то и операции разворачивания/сворачивания для него не
предусмотрены (значки «+» и «-» для него отсутствуют). Но ведь бизнесмодели предприятий могут быть различными и иерархия измерений в них
будет различаться. Поэтому в кросс-таблице предусмотрена возможность
изменения порядка следования измерений. Сделать это можно двумя способами. Первый – с помощью кнопки на панели инструментов кросстаблицы вызвать окно настройки измерений (рис. 3.10) и изменить их
порядок в списке. Недостатком данного способа является то, что результаты будут показаны для всех измерений, а не для промежуточных. Поэтому, если измерений много, а данные имеют большой объем, в результате чего перестройка кросс-таблицы может занять много времени, этот
способ оказывается неэффективным.
Второй способ заключается в непосредственном «перетаскивании» заголовков измерений непосредственно в кросс-таблице. Такой
способ сразу позволяет увидеть результаты и упрощает поиск наиболее удобного представления. Для этого нужно направить указатель
мыши на заголовок измерения таким образом, чтобы он приобрёл
форму стрелки . Затем «перетащить» указатель на заголовок измерения, перед которым или после которого должно быть вставлено выбранное. При этом необходимо следить за формой указателя мыши,
которую он приобретает в конечной точке перетаскивания:
- измерение будет встроено слева от текущего измерения;
- измерение будет встроено справа от текущего измерения.
Например, можно вставить измерение «Товар» между измерениями «Дата» и «Город» (рис. 3.17).
Рис. 3.17. Изменение порядка следования измерений в кросс-таблице
Ещё одной проблемой представлений на рис. 3.12 – 3.16 является
то, что данные в таблице размещены по «ширине», поэтому в видимой

59
области находится лишь небольшая их часть, что требует интенсивного
использования полосы прокрутки. Чтобы сделать представление более
компактным и удобным для просмотра, можно изменить размещение
фактов из колонок в строки. Для этого служит кнопка - «Положение
фактов» на панели инструментов окна кросс-таблицы. Она позволяет
преобразовать представление на рис. 3.12 к следующему виду (рис. 3.18).
Рис. 3.18. Результат перемещения фактов из колонок в строки
Следует отметить, что ни одно из рассмотренных выше представлений кросс-таблицы не содержит собственно значений фактов,
а только их агрегаты (сумму, количество). Если обратиться к рис.
3.1, то можно сказать, что мы видим многомерный куб «снаружи».
Конечно, в большинстве случаев аналитика интересуют итоговые
показатели, но отдельные факты тоже могут дать полезную информацию.
Для того чтобы увидеть внутренне содержание куба (т.е. отдельные факты), нужно получить срезы. При этом каждый срез будет
порождать отдельное представление в кросс-таблице. Для того чтобы
построить срез, нужно выбрать хотя бы одно измерение. Иными словами, срез – это просмотр содержимого OLAP-куба в разрезе определенного измерения.
Построение срезов куба производится с помощью манипуляций над заголовками измерений в кросс-таблице. Вернёмся к состоянию кросс-таблицы, представленному на рис. 3.18. Чтобы получить
срез по измерению «Город», достаточно «перетащить» кнопку с его
заголовком в одну из ячеек, в которых содержатся заголовки фактов
таким образом, чтобы в конце траектории перемещения указатель
мыши принял форму наклонной стрелки с прямоугольником - . В
результате будет получено представление на рис. 3.19.
Срез на рис. 3.19 содержит все значения фактов (цены, количества
и суммы) для поставок по всем городам на каждую дату рассматриваемого временного интервала. Пустые ячейки в таблице указывают, что на
соответствующую дату поставок в данный город не было.

60
Рис. 3.19. Срез по измерению «Город»
В кросс-таблице на рис. 3.19 отсутствует информация по измерениям «Товар» и «Покупатель». При необходимости включить данные измерения в кросс-таблицу необходимо построить еще два среза,
переместив их заголовки на заголовок любого измерения, уже включенного в срез (рис. 3.20). В результате кросс-таблица будет содержать полную информацию по всем измерениям и фактам. Множество
ячеек многомерного куба, сформированное с помощью двух или более срезов, часто называют подкубом.
Таким образом, манипулируя с кросс-таблицей, аналитик добивается представления, которое наилучшим образом позволяет получить
ответы на требуемые вопросы. Каждое изменение, внесенное пользователем в кросс-таблицу, приводит к тому, что OLAP-ядро системы генерирует запросы к базе или хранилищу данных, которые и формируют соответствующее представление в кросс-таблице.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
