logo search
2014 учебное пособие ИТ в Менеджменте

5.3 Многомерный анализ данных на основе olap

Для решения аналитических задач, связанных со сложными расчетами, прогнозированием, моделированием сценариев «Что, если…» применяется технология многомерного анализа данных - Технология OLAP. Концепция OLAP впервые была описана в 1993 году Эдгаром Коддом, известным исследователем баз данных и автором реляционной модели данных, в книге “OLAP для пользователей-аналитиков: каким он должен быть”, где он изложил 12 законов аналитической обработки данных, по которым разработчики OLAP-продуктов живут и сейчас:

1. Концептуальное многомерное представление данных.

2. Прозрачность (прозрачный доступ к внешним данным для пользователя, позволяя ему, где бы он ни находился, связываться при помощи аналитического инструмента с сервером).

3. Доступность и детализация данных.

4. Постоянная производительность при разработке отчетов (Если число измерений или объем базы данных увеличиваются, пользователь-аналитик не должен чувствовать ухудшение в производительности).

5. Клиент-серверная архитектура (OLAP доступен с рабочего стола).

6. Общая многомерность.

7. Динамическое управление разреженными матрицами.

8. Многопользовательская поддержка. Часто бывает, что несколько пользователей-аналитиков испытывают потребность работать совместно с одной аналитической моделью или создавать различные модели из единых данных. И OLAP-инструмент должен предоставлять возможности совместного доступа (запроса и дополнения), целостности и безопасности.

9. Неограниченные перекрестные операции.

10. Интуитивная манипуляция данными.

11. Гибкие возможности получения отчетов.

12. Неограниченная размерность и число уровней агрегации (аналитический инструмент должен предоставлять не менее 15 измерений одновременно, а предпочтительно 20).

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

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

Концепция OLAP появилась именно для разрешения подобных проблем. OLAP (OnLine Analytical Processing) – это оперативная аналитическая обработка больших объемов данных в режиме реального времени. Цель OLAP-систем – облегчение решения задач анализа больших объемов данных и быстрая обработка сложных запросов к базе данных.

OLAP – это:

OLAP – это совокупность концепций, принципов и требований, облегчающих аналитикам доступ к данным. Это инструмент для многомерного динамического анализа больших объемов данных в режиме реального времени.

Задача аналитика - находить закономерности в больших массивах данных. Аналитик не будет обращать внимания на отдельно взятый факт, ему нужна информация о нескольких десятках подобных событий. Одиночные факты в базе данных интересны, к примеру, бухгалтеру или работнику отдела продаж, в компетенции которого находится сделка. Аналитику одной записи мало - ему, к примеру, могут понадобиться все сделки данного филиала или представительства за месяц, год. Заодно аналитик отбрасывает ненужные ему подробности вроде ИНН покупателя, его точного адреса и номера телефона, индекса контракта и тому подобного. В то же время данные, которые требуются аналитику для работы, обязательно содержат числовые значения - это обусловлено самой сущностью его деятельности.

Многомерный набор данных часто представляют в виде OLAP – куба (см. рис.26). Оси OLAP-куба содержат параметры, а ячейки — зависящие от них агрегатные данные.

Рис. 26 OLAP – куб

Кубы OLAP представляют собой, по сути, мета-отчеты. Преимущества кубов очевидны - данные необходимо запросить из базы данных всего один раз - при построении куба. Поскольку аналитики, как правило, не работают с информацией, которая дополняется и меняется "на лету", сформированный куб является актуальным в течение достаточно продолжительного времени. Благодаря этому, не только исключаются перебои в работе сервера баз данных (нет запросов с тысячами и миллионами строк ответов), но и резко повышается скорость доступа к данным для самого аналитика.

Но есть и значительный недостаток: куб OLAP может занимать в десятки, и даже сотни раз больше места, чем исходные данные.

OLAP – куб совсем не обязательно должен быть трехмерным. Он может быть и двухмерным и многомерным - в зависимости от решаемой задачи. Аналитикам может понадобиться более 20 измерений - серьезные OLAP-продукты именно на такое количество и рассчитаны. Более простые настольные приложения поддерживают не более 6 измерений.

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

Наполнение OLAP - куба может вестись как реальными данными из оперативных систем, так и прогнозируемыми на основе исторических данных. Измерения гиперкуба могут носить сложный характер, быть иерархическими, между ними могут быть установлены отношения. В процессе анализа пользователь может менять точку зрения на данные (так называемая операция смены логического взгляда), тем самым просматривая данные в различных разрезах и разрешая конкретные задачи. Над кубами могут выполняться различные операции, включая прогнозирование и условное планирование (анализ типа “что, если”).

Трехмерный куб легко можно изобразить и представить. Однако адекватно представить или изобразить шестимерный или двадцатимерный куб почти невозможно. Поэтому перед употреблением из многомерного куба извлекают обычные двумерные таблицы, т.е. как бы "разрезают" измерения куба по меткам. Разрезая OLAP кубы по измерениям, аналитик получает, фактически, интересующие его «обычные двумерные отчеты» (не обязательно отчеты в обычном понимании этого термина - речь идет о структурах данных с такими же функциями). Эта операция называется "разрезанием" куба. Этим способом аналитик получает двумерный срез куба и с ним работает. Нужные разрезы — это отчёты.

Взаимодействуя с OLAP-системой, пользователь может осуществлять гибкий просмотр информации, получать произвольные срезы данных, и выполнять аналитические операции детализации, свертки, сквозного распределения, сравнения во времени (см. рис.27).

Рис. 27 Получение произвольных срезов данных при разрезании OLAP куба.

Классификация OLAP-продуктов

Выполнение операций над данными осуществляется OLAP-машиной. OLAP-продукты классифицируют по способу хранения данных и по месту размещения OLAP-машины.

По способу хранения данных делятся на три категории MOLAP, ROLAP и HOLAP:

  1. MOLAP - исходные и агрегатные данные хранятся в многомерной базе данных или в многомерном локальном кубе.

  2. ROLAP - исходные данные хранятся в реляционной базе данных или в плоских локальных таблицах на файл-сервере. Агрегатные данные могут помещаться в служебные таблицы в той же базе данных. Преобразование данных из реляционной БД в многомерные кубы происходит по запросу OLAP-средства.

  3. HOLAP - исходные данные остаются в реляционной базе, а агрегатные данные размещаются в многомерной базе данных. Построение OLAP-куба выполняется по запросу OLAP-средства на основе реляционных и многомерных данных.

По месту размещения OLAP-машины можно выделить два основных класса OLAP-продуктов: OLAP-сервер и OLAP-клиент.

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

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

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

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

OLAP-сервер предъявляет минимальные требования к мощности клиентских компьютеров. Требования же OLAP-клиента выше, т.к. он производит вычисления в своей оперативной памяти. Если мощности клиентских компьютеров мала, то OLAP-клиент будет работать медленно или не сможет работать вовсе. Покупка одного мощного сервера может оказаться дешевле модернизации всех компьютеров.

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

С внедрением OLAP производительность и эффективность управления предприятием значительно возрастает. Главным лицом в процессе анализа данных является эксперт – специалист в предметной области. Эксперт выдвигает гипотезы (предположения) и для их анализа либо просматривает некие выборки различными способами, либо строит модели для проверки достоверности гипотез.

Аналитические средства позволяют конечному пользователю, не имеющему специальных знаний в области ИТ, работать с большими объемами данных. Цель аналитических бизнес-систем: поддержка принятия решений на всех уровнях управления предприятием.

Аналитические системы оперативного уровня обеспечивают управление предприятием в "режиме функционирования", т.е. выполнения определенной производственной программы. Аналитические системы стратегического уровня помогают руководству предприятия вырабатывать решения в "режиме развития". Системы стратегического управления – это аналитические ИС, поддерживающие решение ключевых задач стратегического управления компанией.

Множество статей, посвященных OLAP, можно прочитать на сайте: http://www.olap.ru/basic/oolap.asp