Концепция программных продуктов OLAP: удобная аналитика
Категория: Спорт и долголетие

Автор: Дмитрий Лобач

 

Что такое OLAP?

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

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

 

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

 

Трехмерное представление таблицы. Серым сегментом показано, что для Аргентины в 1988 году данных нет.

 

Куб OLAP

Подобный трехмерный массив в терминах OLAP и называется кубом. На самом деле, с точки зрения строгой математики кубом такой массив будет далеко не всегда: у настоящего куба количество элементов во всех измерениях должно быть одинаковым, а у кубов OLAP такого ограничения нет. Тем не менее, несмотря на эти детали, термин "кубы OLAP" ввиду своей краткости и образности стал общепринятым. Куб OLAP совсем не обязательно должен быть трехмерным. Он может быть и двух-, и многомерным - в зависимости от решаемой задачи. Особо матерым аналитикам может понадобиться порядка 20 измерений - и серьезные OLAP-продукты именно на такое количество и рассчитаны.

Измерения OLAP-кубов состоят из так называемых меток или членов (members). Например, измерение «Страна» состоит из меток «Аргентина», «Бразилия», «Венесуэла» и т.д.

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


 

 

«Разрезание» куба

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

Соответственно, "неразрезанными", как правило, остаются только два измерения - по числу измерений таблицы. Бывает, "неразрезанным" остается только измерение - если куб содержит несколько видов числовых значений, они могут откладываться по одному из измерений таблицы.

 

Иерархии OLAP

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

 

 

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

 

Мета-отчеты

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

Во-первых, аналитик вынужден заниматься не своей работой (SQL-программированием) либо ждать, когда за него задачу выполнят программисты - все это отрицательно сказывается на производительности труда. Во-вторых, один-единственный отчет или таблица, как правило, не спасает гигантов мысли и отцов русского анализа - и всю процедуру придется повторять снова и снова. В-третьих, как мы уже выяснили, аналитики по мелочам не спрашивают - им нужно все и сразу. Это означает (хотя техника и идет вперед семимильными шагами), что сервер корпоративной реляционной СУБД, к которому обращается аналитик, может задуматься глубоко и надолго, заблокировав остальные транзакции.

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

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

Конечно, за повышение таким способом производительности надо платить. Иногда говорят, что структура данных просто "взрывается" - куб OLAP может занимать в десятки, и даже сотни раз больше места, чем исходные данные.

 

Критерии OLAP

Критерии (всего числом 12) были сформулированы в 1993 году Е.Ф. Коддом. Позднее они были переработаны в так называемый тест FASMI, который определяет требования к продуктам OLAP. FASMI - аббревиатура от названия каждого пункта теста:

• Fast (Быстрый). Приложение OLAP должно обеспечивать минимальное время доступа к аналитическим данным - в среднем порядка 5 секунд;

• Analysis (Анализ). Приложение OLAP должно давать пользователю возможность осуществлять числовой и статистический анализ;

• Shared (Разделяемый доступ). Приложение OLAP должно предоставлять возможность работы с информацией многим пользователям одновременно;

• Multidimensional (Многомерность). См. выше;

• Information (Информация). Приложение OLAP должно давать пользователю возможность получать нужную информацию, в каком бы электронном хранилище данных она не находилась.

 

Схемы работы с OLAP

Для «легковесного» применения подойдут OLAP-средства, встроенные в настольные приложения. Такие средства, как правило, имеют множество ограничений: на количество измерений, на допустимые иерархии и так далее. К подобным средствам, например, относится модуль Pivot Table, позволяющий работать с кубами в MicrosoftExcel.

В «тяжелых» случаях применяют двухступенчатую схему «клиент-сервер». Сервер обеспечивает непосредственно извлечение информации из базы данных и все прочее, необходимое для создания кубов. Специализированное же приложение-клиент предназначено для удобного (а главное - эффективного) просмотра кубов и выявления аналитических закономерностей.

В линейке продуктов Microsoft серверная часть представлена в лице Microsoft Analysis Services, которые входят в MSSQLServer. Сравнительно недавно в состав MS Office включен OLAP-клиент под названием MicrosoftDataAnalyzer.

 

Источник: онлайн-журнал «SoftKey.info»

Чтобы оставить комментарий, Вам необходимо авторизоваться (либо зарегистрироваться)

Комментарии

  • Комментариев пока нет