Принято считать, что OLAP — это аналитическая технология для продвинутых исследователей данных. В действительности же, OLAP-системы — это генератор отчетов, а OLAP-интерфейс — сам отчет.

Предпосылки

OLAP как генератор отчетов

Широко распространенным заблуждением является представление, что OLAP (online analytical processing) — это аналитическая технология, рассчитанная на продвинутых пользователей, своего рода исследователей данных. В действительности же, OLAP-система — это генератор отчетов, а OLAP-интерфейс — отчет. OLAP-интерфейс прост и требует знаний не больше, чем электронная таблица.

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

OLAP предоставляет обе формы отчетов, и интерфейс интерактивного анализа данных, и возможность генерации печатных форм. Однако в сравнении с традиционными способами программирования и генерации пользовательских отчетов, OLAP не только в сотни раз уменьшает расходы на программирование, но и меняет сам принцип работы пользователя с отчетом.

Отличие OLAP как инструментария генерации отчетов состоит в возможности автоматически и интерактивно выполнять следующие операции с данными:

  • рекурсивную группировку данных;
  • вычисление промежуточных итогов по подгруппам;
  • вычисление окончательных итогов.

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

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

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

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

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

Хранение форм OLAP-отчетов

Опыт показывает, недостаточно предоставить пользователям большой куб, состоящий из множества измерений и фактов. Почему?

Во-первых, в каждый момент времени человеку нужен вполне определенный отчет, например, «Продажи за прошедший квартал по регионам», «Динамика продаж товара А». Даже использование мощного инструментария не избавляет от потерь времени на получение подобных отчетов из общего куба, содержащего все записи о продажах в различных разрезах.

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

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

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

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

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

Место выполнения вычислений

Существует два варианта расположения OLAP-машины — вычислительного ядра любой OLAP-системы — на центральном сервере или на стороне клиента.

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

Допустим, в организации есть 100 пользователей OLAP-системы, у каждого из которых установлен рядовой ПК с 2-гигагерцевым процессором и 256 Мбайт оперативной памяти. Совокупная стоимость подобного парка компьютеров — 200 тыс. долл. Для обеспечения эквивалентной мощности единственный сервер, вероятно, будет стоить не меньше миллиона долларов, между тем, 200 тыс. долл. за пользовательские компьютеры все равно придется заплатить.

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

Высокая мощность современных персональных компьютеров и постоянный рост этой мощности позволяют создавать эффективные системы с OLAP-машиной, расположенной на стороне клиента.

Доставка OLAP-отчета до конечного пользователя

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

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

  • удаленный доступ к базе данных по IP-протоколу или через Web-интерфейс;
  • распространение локальных кубов - многомерных баз данных, хранящихся в одном файле.

Главное достоинство первого подхода состоит в том, что все пользователи видят один и тот же экземпляр актуальных данных. Но есть и недостатки: во время сбоев или обслуживания сервера пользователи не могут выпускать отчеты даже по данным за прошлые периоды; пользователь может передать отчет другому пользователю только как фиксированный файл в формате HTML, Excel и т.п. или как бумажную копию.Второй способ имеет массу достоинств: возможность работы в автономном режиме; независимость от центрального сервера; полное использование вычислительной мощности парка персональных компьютеров компании; возможность широкого распространения информации (пользователь, получивший микрокуб, может передать его другому пользователю, используя различные способы доставки — электронную почту, магнитные носители и т.д.).

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

До недавних пор особняком стояла программа MS Excel. Внутри одного файла Excel — «Книги» — может содержаться база данных в виде плоской денормализованной таблицы и настроенный на эту таблицу OLAP-отчет (PivotTable — «сводная таблица»). Такой OLAP-отчет легко распространять, он не требует высокой квалификации для использования, и все OLAP-отчеты могут быть прочитаны универсальной программой — MS Excel. Однако электронная таблица имеет ряд ограничений: можно обрабатывать не более 64000 записей, существует опасность порчи отчета, PivotTable имеет небольшую функциональность. Тем не менее, Excel завоевал огромную популярность именно как самодостаточный контейнер данных и форм их представления.

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

Концепция микрокуба «Контур»

Приведенные рассуждения послужили для нашей компании основой разработки концепции многомерной базы данных, которая получила название микрокуб «Контур». Основные принципы концепции.

  1. OLAP-машина расположена на стороне клиента. Это необходимо для использования мощности персональных компьютеров и для исключения центрального сервера, требующего постоянного обслуживания и монополизирующего информацию.
  2. Данные и OLAP-машина автономны. Многомерная база данных не является неотъемлемой и неотделяемой частью OLAP-системы и может свободно перемещаться и обрабатываться произвольной системой, оснащенной стандартной OLAP-машиной.
  3. Данные и метаданные расположены в одном файле. Это позволяет отображать данные универсальными программами и исключает необходимость инсталляции и настройки конкретного приложения пользователем.
  4. В одном файле сохраняется одна база данных, неограниченное количество алгоритмов расчета вычисляемых полей и неограниченное количество форм отчетов. В результате появляется универсальный контейнер аналитического приложения.
  5. Не существует ограничений на способы отображения и манипулирования данными. Кроме динамической таблицы, данные могут отображаться в виде неограниченного количества диаграмм, настройки которых также сохраняются в едином файле-контейнере.
  6. Объем файла минимален. Это необходимо для передачи его по Internet и электронной почте и исключает хранение в файле предварительно рассчитанных агрегатов, поскольку приводит к эффекту "взрывного роста данных".
  7. Использование всех средств доставки данных. OLAP-машина может получать данные в виде потока по распространенным протоколам.
Рис. 1. Структура микрокуба

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

Конечные продукты, построенные на платформе ContourCube, могут поддерживать как преобразование ROLAP (Relational OLAP) реляционных данных в многомерные в момент выполнения запросов, так и технологию MOLAP (Multidimensional OLAP), т.е. предварительное создание многомерной базы данных. В последнем случае эта база данных подобно Excel-книге содержит в себе данные и отчеты. Такая OLAP-база данных является максимально мобильной.

Микрокуб можно выложить на сайт. После этого любой продукт, оснащенный компонентом ContourCube, может получать данные по ссылке на микрокуб. Роль сервера приложения, обеспечивающего многопользовательскую работу и, в случае необходимости, разграничение прав доступа, в этом случае играет Web-сервер.

Микрокуб можно отправить по электронной почте как вложение. Если на компьютере получателя инсталлирована и зарегистрирована как исполняющая программа для файла с этим расширением (по умолчанию *.cube), то она откроет вложение и предоставит пользователю один или несколько отформатированных отчетов.

Микрокуб можно выложить в каталог локальной сети, доступный определенным группам пользователей. В этом случае сотрудники предприятия получают максимально быстрый доступ к данным.

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

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

Микрокуб «Контур» является реализацией концепции мобильного OLAP-инструментария. Он позволяет создавать системы корпоративной отчетности, системы широкого распространения данных, однопользовательские приложения.

«Аналитическая платформа Контур»

Отход от традиционных технологий OLAP-сервера и локального куба без метаданных потребовал проектирования и разработки не вполне обычной линейки продуктов. Впоследствии она получила название «Аналитическая платформа Контур».

Требовалась разработка трех видов инструментов, которые служат для решения следующих задач:

  • интерактивного анализа;
  • настройки микрокубов;
  • генерации микрокубов.

Ниже приведены краткие описания разработанных инструментов.

  • "Контур Стандарт". Позволяет пользователям настроиться на таблицы реляционной базы данных, сконструировать SQL-запрос, настроить на него OLAP-отчеты, которые будут выпускаться по технологии ROLAP. В то же время "Контур Стандарт" позволяет сохранить уже выпущенный отчет в микрокуб для дальнейшей работы в автономном режиме, передачи другим пользователям.
  • "Контур OLAPBrowser". Cистема, ориентированная на работу конечного пользователя с микрокубами, в том числе через Internet. Выглядит как многооконный браузер и позволяет открывать обычные Web-страницы. Но если в адресной строке будет введен путь к файлу с расширением *.cube, или пользователь кликнет по ссылке, ведущей на такой файл, то в отдельном окне отобразится один или несколько OLAP-отчетов от заданного микрокуба.
  • "Контур Дизайнер кубов". Создает репозиторий метаданных предприятия в открытом XML-формате. Она позволяет вести словарь разнообразных баз данных, рисовать в графическом интерфейсе ER-диаграммы, отражающие связи таблиц в этих базах данных, конструировать SQL-запросы, проектировать микрокубы. Основным назначением системы является создание XML-сценариев генерации микрокубов, которые впоследствии используются для пакетной, регулярной генерации микрокубов для корпоративных или внешних пользователей.
  • "Сценарий генерации микрокубов". Содержит в себе путь к базе данных, SQL-выражение для получения данных, путь к шаблонному микрокубу, дополнительные параметры и описание-мастер полей. Если в сценарии описано мастер-поле, то генерируется столько микрокубов, сколько есть уникальных значений в этом поле. Например, таким образом генерируются отчеты о продажах для каждого контрагента. Сценарий может генерироваться различными программами, например, активной страницей Web-сервера, как результат диалога с пользователем.
  • "Контур Генератор кубов". Утилита, которая запускается по расписанию или вручную. В качестве аргументов при запуске из командной строки ей передается путь к сценарию генерации микрокубов и дополнительные параметры, например дата. В результате работы программы генерируется один или несколько микрокубов.

Примеры мобильных OLAP-решений

Рассмотрим несколько практических сценариев использования технологии микрокубов.

Корпоративная отчетность

В распределенной организации филиалы регулярно передают данные в центральный офис. Здесь данные попадают в центральное Хранилище. Над ними выполняются дополнительные расчеты, для которых в филиалах нет данных. Скажем, общекорпоративные расходы разносятся на филиалы, уменьшая тем самым их прибыль в отчете о прибылях и убытках. Для того чтобы филиалы могли ознакомиться с окончательными отчетами после выполнения всех расчетов и проверок, запускается Генератор кубов. В сценарии описан SQL-запрос к Хранилищу данных, в качестве мастер-поля указано поле «код филиала». В результате для каждого филиала генерируется отдельный микрокуб, который отправляется по электронной почте. Получатель — сотрудник планово-экономического отдела — анализирует, распечатывает и подшивает отчеты. А для управляющего филиалом создается новый, более обобщенный микрокуб, в котором дополнительно настроены диаграммы, наглядно показывающие структуру доходов и расходов, а также динамику продаж за последний квартал в разрезе товаров.

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

В то же время сотрудники центрального офиса работают в режиме ROLAP. У них установлены системы «Контур Стандарт», которые настроены непосредственно на реляционное Хранилище данных.

Распространение прайс-листов

Служба на сайте компании, занимающейся оптовой торговлей, позволяющая подписаться на ее прайс-листы. Данные о ценах на товары хранятся в базе данных учетной системы. Еженедельно планировщик заданий запускает Генератор кубов, который создает микрокуб, наполненный актуальными данными. Далее робот рассылает этот микрокуб по электронным адресам подписчиков. Получив письмо, подписчик открывает вложенный микрокуб с многомерным прайс-листом при помощи программы «Контур OLAPBrowser». Выбрав необходимую категорию товара, подписчик получает отчет с данными, необходимыми его магазину.

Публикация маркетинговых исследований

Агентство собирает информацию, обрабатывает ее и продает заинтересованным организациям. Например, некое агентство исследует рынок мороженого и продает свои ежемесячные отчеты производителям. В случае отсутствия в агентстве специализированного программного обеспечения, результаты исследований могут сводиться в файл Excel. Этот файл средствами MS Excel можно сохранять в dbf-файл, из которого в свою очередь легко создать микрокуб, например, при помощи программы «Контур Стандарт». Этот микрокуб продается производителям мороженого по абонементу. Маркетологи предприятий получают микрокуб по почте и анализируют рынок, используя программу «Контур OLAPBrowser».

Владимир Некрасов (nekrasov@iso.ru) — заместитель генерального директора компании Intersoft Lab (Москва).