Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Хранилища данных и OLAP-технологии. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
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 Of­fice включен 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 Ware­house и загрузку данных в него. Аналитическая платформа 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-ядро системы генериру­ет запросы к базе или хранилищу данных, которые и формируют соответ­ствующее представление в кросс-таблице.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]