OLAP (On-Line Analitical Processing) — технология оперативной аналитической обработки данных. Основное назначение систем OLAP — создание различного рода отчетов. В качестве внешнего источника данных для анализа могут выступать реляционная или нереляционная база данных, текстовый файл, электронная таблица и др. OLAP-отчет может содержать не только текст и таблицы, но и другие визуальные элементы — графики, диаграммы, географические карты, так называемые светофоры (простые в понимании визуальные элементы, которые показывают данные в виде приборов, похожих на автомобильные). Перетаскивая колонки и строки, пользователь самостоятельно меняет вид отчета и группировку данных, система вычисляет итоги, суммируя тысячи, а то и миллионы данных.
В системах OLAP используется модель данных, называемая гиперкубом данных (более правильно было бы говорить не о гиперкубе, а о гиперпараллелепипеде), т.е. представление данных в виде многомерного куба, в ячейках которого хранятся значения данных (называемых при этом мерами), например значения объемов продаж. Измерения представляют собой величины, образующие ребра гиперкуба. Например, измерениями могут быть названия товаров и названия месяцев года. В этом случае имеем двумерный куб (прямоугольную таблицу), показывающий значения уровней продаж по товарам и месяцам. Но возможно увеличение числа как измерений (например, добавление данных о продажах не только по месяцам и товарам, но и по регионам), так и мер (например, нас может интересовать не только уровень продаж, но и чистая прибыль или остаток на складе), в этом случае ячейке соответствуют несколько мер.
Над гиперкубом могут выполняться следующие базовые операции:
По своей архитектуре OLAP системы подразделяются на системы MOLAP, ROLAP, HOLAP.
В системах MOLAP (Multidimensional OLAP) используется структура постоянного куба, точнее данные хранятся в предварительно созданной одной большой плоской ненормализованной таблице, примером которой может служить табл. 1, где Xi — измерения, Yj — меры. Фактам соответствуют строки таблицы. Недостаток MOLAP — трудности добавления в таблицу новых измерений, большие затраты памяти из-за неиспользования высокой разреженности таблицы, обусловливаемой неодинаковостью измерений для разных мер. Поэтому MOLAP-системы весьма чувствительны к объемам хранимых данных. Но MOLAP характеризуются высоким быстродействием.
Рис. 1.  
Для систем ROLAP (Relational OLAP) гиперкуб — это лишь пользовательский интерфейс к БД, который эмулируется на обычной реляционной СУБД. Структура данных в ROLAP-системе может быть представлена в виде IDEF1X-диаграммы, примером является рис. 2. В этой структуре можно хранить очень большие объемы данных, однако ее недостаток заключается в низкой и неодинаковой эффективности OLAP-операций. В клиент/серверной архитектуре ROLAP-сервер - это выделенный компьютер, который получает многомерные запросы от клиента, генерирует SQL-запросы к реляционным базам данных, выполняет поиск по различным таблицам и необходимые вычисления, передает клиенту порции данных для отображения. При этом кубы заранее не создаются. Опыт эксплуатации ROLAP-продуктов показал, что они больше подходят на роль интеллектуальных генераторов отчетов, чем действительно оперативных средств анализа. Они применяются в таких областях, как розничная торговля, телекоммуникации, финансы, где количество данных велико, а высокой эффективности выполнения запросов не требуется.
Рис. 2.  
В HOLAP-системах (Hibrid OLAP) используются черты как MOLAP, так и ROLAP систем. В них массивы данных делятся на фрагменты, к части данных (разреженным) данным доступ осуществляется по ROLAP-технологии, часть данных (плотных) хранится в таблицах, которые обрабатываются с помощью средств MOLAP. Например, куб, содержащий данные о продажах, может быть разбит на несколько фрагментов, один из которых с данными за текущий год, запрашивается довольно часто, а остальные - не очень. Тогда, создавая фрагмент как сечение по текущему году, мы выбираем формат MOLAP, так как здесь наиболее критичным вопросом выступает производительность, а для остальных исторических данных - ROLAP.
Примером реализации OLAP может служить программа ИНТАЛЕВ: ГИПЕРКУБ компании 1С. Это программа, которая позволяет получить данные из абсолютно различных по своей структуре и формату источников и формировать по ним отчеты, которые сохраняются в формате XML, что дает возможность объединять их между собой.
Список литературы
1. http://www.itstan.ru/content/view/165/252/
2. Лекция. Аналитическая обработка данных (OLAP-технология)/ — http://www.dofa.ru/proff-08/RR_08/Material/pr5/t4/u4.htm#link3