OLAP-технологии в подсистеме анализа объекта исследований.
Введение.
Технологии OLAP - это оперативный анализ
данных (Online Analytical Processing). Двенадцать определяющих принципов OLAP
сформулировал Е.Ф. Кодд. Позже его определение было переработано в так
называемый тест FASMI, требующий, чтобы OLAP-приложение предоставляло
возможности быстрого анализа разделяемой многомерной информации.
Анализ существующих достижений.
Для быстрого анализа разделяемой
многомерной информации существует одноименный
тест FASMI:
-
Fast
(Быстрый) - анализ должен производиться одинаково быстро по всем аспектам
информации. Приемлемое время отклика не более 5 с;
-
Analysis
(Анализ) - должна быть возможность осуществлять основные типы числового и
статистического анализа, предопределенного разработчиком приложения или
произвольно определяемого пользователем;
-
Shared
(Разделяемой) - множество пользователей должно иметь доступ к данным, при этом
необходимо контролировать доступ к конфиденциальной информации;
-
Multidimensional
(Многомерной) - это основная, наиболее существенная характеристика OLAP;
-
Information
(Информации) - приложение должно иметь возможность обращаться к любой нужной
информации, независимо от ее объема и места хранения.
Следует отметить, что OLAP-функциональность
может быть реализована различными способами, начиная с простейших средств
анализа данных в офисных приложениях и заканчивая распределенными
аналитическими системами, основанными на серверных продуктах. OLAP
предоставляет удобные быстродействующие средства доступа, просмотра и анализа
деловой информации. Пользователь получает естественную, интуитивно понятную
модель данных, организуя их в виде многомерных кубов (Cubes). Осями многомерной
системы координат служат основные атрибуты анализируемого бизнес-процесса. На
пересечениях осей - измерений (Dimensions) - находятся данные, количественно
характеризующие процесс - меры (Measures). Многомерность в OLAP-приложениях
может быть разделена на три уровня:
Многомерное представление данных -
средства конечного пользователя, обеспечивающие многомерную визуализацию и
манипулирование данными; слой многомерного представления абстрагирован от
физической структуры данных и воспринимает данные как многомерные;
Многомерная обработка -
средство (язык) формулирования многомерных запросов (традиционный реляционный
язык SQL здесь оказывается непригодным) и процессор, умеющий обработать и
выполнить такой запрос;
Многомерное хранение -
средства физической организации данных, обеспечивающие эффективное выполнение
многомерных запросов.
Первые два уровня в
обязательном порядке присутствуют во всех OLAP-средствах. Третий уровень, хотя
и является широко распространенным, не обязателен, так как данные для
многомерного представления могут извлекаться и из обычных реляционных структур;
процессор многомерных запросов в этом случае транслирует многомерные запросы в
SQL-запросы, которые выполняются реляционной СУБД.
Конкретные OLAP-продукты, как правило,
представляют собой либо средство многомерного представления данных, OLAP-клиент
(например, Pivot Tables в Excel 2000 фирмы Microsoft или ProClarity фирмы
Knosys), либо многомерную серверную СУБД,
OLAP-сервер (например, Oracle Express Server или Microsoft OLAP
Services).
Как уже говорилось,
средства OLAP-анализа могут извлекать данные и непосредственно из реляционных
систем. Такой подход был более привлекательным в те времена, когда OLAP-серверы
отсутствовали в прайс-листах ведущих производителей СУБД. Но сегодня и Oracle,
и Informix, и Microsoft предлагают полноценные OLAP-серверы и т.о. могут купить
(точнее, обратиться с соответствующей просьбой к руководству компании)
OLAP-сервер той же марки, что и основной сервер баз данных.
OLAP-серверы, или
серверы многомерных БД, могут хранить свои многомерные данные по-разному.
Термин "OLAP"
неразрывно связан с термином "хранилище данных" (Data Warehouse).
Хранилище данных - это предметно-ориентированное, привязанное ко времени и
неизменяемое собрание данных для поддержки процесса принятия управляющих решений.
Данные в хранилище попадают из оперативных систем (OLTP-систем), которые
предназначены для автоматизации бизнес-процессов. Таким образом, задача
хранилища - предоставить "сырье" для анализа в одном месте и в
простой, понятной структуре.
Типичное хранилище данных, как правило,
отличается от обычной реляционной базы данных. Во-первых, обычные базы данных
предназначены для того, чтобы помочь пользователям выполнять повседневную
работу, тогда как хранилища данных предназначены для принятия решений.
Во-вторых, обычные базы данных подвержены постоянным изменениям в процессе работы
пользователей, а хранилище данных относительно стабильно: данные в нем обычно обновляются
согласно расписанию (например, еженедельно, ежедневно или ежечасно — в зависимости
от потребностей).
И, в-третьих, обычные базы данных чаще
всего являются источником данных, попадающих в хранилище. Кроме того, хранилище
может пополняться за счет внешних источников, например статистических отчетов.
Выводы.
Подытоживая, можно
определить OLAP как совокупность средств многомерного анализа данных,
накопленных в хранилище.
Теперь о различных вариантах хранения
информации. Как детальные данные, так и агрегаты могут храниться либо в
реляционных, либо в многомерных структурах. Многомерное хранение позволяет
обращаться с данными как с многомерным массивом, благодаря чему обеспечиваются
одинаково быстрые вычисления суммарных показателей и различные многомерные
преобразования по любому из измерений. Некоторое время назад OLAP-продукты
поддерживали либо реляционное, либо многомерное хранение. Сегодня один и тот же
продукт обеспечивает оба этих вида хранения, а также третий вид - смешанный.
Применяются следующие термины:
MOLAP (Multidimensional
OLAP) - и детальные данные, и агрегаты хранятся в многомерной БД. В этом случае
получается наибольшая избыточность, так как многомерные данные полностью
содержат реляционные;
ROLAP (Relational OLAP)
- детальные данные остаются там, где они "жили" изначально - в
реляционной БД; агрегаты хранятся в той же БД в специально созданных служебных
таблицах;
HOLAP (Hybrid OLAP) -
детальные данные остаются на месте (в реляционной БД), а агрегаты хранятся в
многомерной БД.
Каждый из этих способов
имеет свои преимущества и недостатки и должен применяться в зависимости от
условий - объема данных, мощности реляционной СУБД и т. д.
При хранении данных в многомерных
структурах возникает потенциальная проблема "разбухания" за счет
хранения пустых значений. Ведь если в многомерном массиве зарезервировано место
под все возможные комбинации меток измерений, а реально заполнена лишь малая
часть, то большая часть куба будет пустовать, хотя место будет занято.
Современные OLAP-продукты умеют справляться с этой проблемой.
Список литературы:
1.
Заботнев М.С. Методы представления
информации в разреженных гиперкубах данных [Электронный ресурс]. — Режим
доступа: http://www.olap.ru/basic/theory.asp
2.
Введение
в OLAP. [Электронный ресурс]. — Режим доступа: http://www.olap.ru/basic/oolap.asp
3.
Стариков.
Ядро OLAP системы. [Электронный ресурс]. — Режим доступа: http://www.masters.donntu.edu.ua/2004/kita/petrov/library/lec8.htm
4.
Альперович
М. Введение в OLAP и многомерные базы данных. [Электронный ресурс]. — Режим
доступа: http://www.olap.ru/basic/alpero2i.asp