Консалтинг и автоматизация в области управления
эффективностью банковского бизнеса

Публикации

OSP.ru. Открытые системы

Мобильный OLAP

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

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

Однако, OLAP - это самый мощный на сегодняшний день вид табличного генератора отчетов.

Существует два вида отчетов - экранный отчет для интерактивный анализа, реализуемый как GUI (графический пользовательский интерфейс) и печатный отчет, который выглядит как форма предварительного просмотра для печати, и точно в таком виде распечатывается на бумагу.

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

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

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

  1. Рекурсивная группировка данных.
  2. Вычисление промежуточных итогов по подгруппам.
  3. Вычисление окончательных итогов.

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

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

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

OLAP позволяет реализовать практически все возможные виды табличного представления данных заданной БД. Если конкретный продукт достаточно гибок, то задачей программиста является описание семантического слоя или словаря, после чего квалифицированный пользователь может самостоятельно создавать новые кубы, оперируя терминами известной ему предметной области. Остальные пользователи могут выпускать из каждого куба отчеты, количество видов которых равно n*d, где n - количество измерений, а d - количество значений измерений.

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

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

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

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

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

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

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

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

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

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

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

Два с лишним десятка лет назад, когда появились первые OLAP-системы, персональные компьютеры имели ничтожно малую вычислительную мощность. Вспомним IBM XT с его тактовой частотой 2 Mh и ОЗУ 65 K. Единственным работоспособным вариантом тогда была клиент-серверная архитектура с тонким клиентом, выполняющим запросы и необходимые вычисления на стороне сервера.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



Рис. 1. Структура микрокуба

Такая OLAP-база данных является максимально мобильной.

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

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

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

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

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

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

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

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

Требовалась разработка трех видов инструментов:

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

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

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

Контур OLAPBrowser. Cистема, ориентированная на работу конечного пользователя с микрокубами, в том числе через Интернет. Программа выглядит как многооконный браузер и позволяет открывать обычные web-страницы. Но если в адресной строке будет введен путь к файлу с расширением *.cube, или пользователь кликнет по ссылке, ведущей на такой файл, то в отдельном MDI-окне отобразится один или серия OLAP-отчетов от заданного микрокуба.

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

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

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

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

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

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

Корпоративный репортинг

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

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

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

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

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

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

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

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