Cистемы поддержки принятия решений
Роман Самохвалов, Михаил Елашкин
Представление многих новых информационных технологий для бизнеса, в частности OLAP, сопряжено со стандартной проблемой: из-за того, что России эти технологии мало известны и пока еще не сложилась даже необходимая терминология, редко появляющиеся переводные статьи могут создать у читателя представление, что предмет OLAP гораздо сложнее, чем он есть на самом деле.
OLAP (On Line Analytical Processing) можно перевести как “средства поддержки принятия решений”, т. е. информационное обеспечение той функции, которая присуща любой организации. Необходимость принятия решений всегда была и будет одним из основных элементов управления вне зависимости от технологий. В современных условиях принятие решений чаще всего поддерживается смесью бумажных и компьютерных технологий. OLAP есть не что иное, как более удобная технология, разработанная для той же цели.
Воспользуемся определением OLAP, предложенным в материалах OLAP Council:
OLAP - это программная технология, позволяющая аналитикам, менеджерам и управляющим сформировать свое собственное видение данных, используя быстрый, единообразный, оперативный доступ к разнообразным формам представления информации. Эти формы, полученные на основании первичных данных, позволяют пользователю сформировать полноценное представление о деятельности предприятия.
Функциональное назначение OLAP заключается в обеспечении многомерного динамического анализа консолидированных данных предприятия. OLAP поддерживает следующие аналитические и навигационные виды деятельности пользователя:
- вычисления и моделирование, примененные к измерениям и/или их конкретным элементам, использующие информацию об иерархиях;
- анализ временных тенденций показателей;
- формирование срезов многомерного представления для просмотра на экране;
- переход к более глубоким уровням детализации;
- доступ к исходным данным;
- “вращение” многомерных представлений.
Как соотносятся системы OLAP и СУБД и могут ли СУБД быть использованы для работы с информацией такого рода? Различие между OLAP и СУБД заключается прежде всего в том, что СУБД ориентированы на обработку транзакций в режиме реального времени, т. е. они могут выполнять очень большое число небольших транзакций. Напротив, обработка сравнительно простого запроса аналитика “Как изменилась доходность филиалов нашей организации по сравнению с прошедшим годом?” требует чтения сотен тысяч записей!
Учитывая различие, допустимы два способа реализации OLAP - создание специализированных версий СУБД или адаптация известных продуктов, в том случае если они обладают достаточным потенциалом. Именно эта идея была положена в основу семейства продуктов Oracle для OLAP.
Продукты семейства Oracle Express
Express - это название семейства продуктов корпорации Oracle, работающих по технологии OLAP. Ключевой из них - Oracle Express Server. Этот сервер использует многомерную модель данных и оптимизирован для запросов и анализа корпоративных данных.
Для построения систем уровня предприятия в продуктах семейства Express используются следующие компоненты:
- Сервер OLAP Express Server. Этот сервер структурирует данные для анализа и предоставляет вычислительные возможности для создания производных (вычислимых) данных. Express Server и использующие его приложения работают на множестве платформ в среде клиент-сервер и Web. В дополнение к Express Server поставляется работающая на автономном ПК версия Personal Express.
- Среда разработки приложений Oracle Express Objects. Oracle Express Objects предлагает визуальную объектно-ориентированную среду разработки, которая обеспечивает создание и сопровождение собственных приложений OLAP. Предназначенное для конечных пользователей инструментальное средство создания запросов и отчетов Oracle Express Analyzer дополняет возможности Oracle Express Objects. Кроме того, можно получать отчеты и строить приложения OLAP в среде Microsoft Excel и Web.
- Готовые настраиваемые приложения. Используя приложения Express - Oracle Sales Analyzer и Oracle Financial Analyzer, - пользователи могут получать доступ, производить вычисления и совместно пользоваться информацией, смоделированной в соответствии с нуждами их бизнеса. Применение готовых приложений для решения широкого класса задач, связанных с маркетинговым анализом, финансовым моделированием и прогнозированием, позволяет существенно экономить время и средства на создание и внедрение подобных систем.
Модель данных Express
Базовое понятие представления данных в Oracle Express - многомерный куб. Большинство данных в хранилище может быть представлено в таком виде (см. рисунок). Реальное приложение OLAP Express может использовать модель данных в виде множества многомерных кубов. Аналогом в реляционных средах могут служить базы данных с одной или многими таблицами.
Модель представления данных
Первичные элементы модели данных Express:
- измерения (ключи);
- переменные (хранимые значения данных);
- формулы (вычисляемые элементы данных);
- отношения (атрибуты).
Измерения способны иметь (и обычно имеют) иерархическую структуру.
В формулах могут использоваться как переменные, так и другие формулы. Получающееся в результате вычислений числовое значение никогда не хранится в БД Express; в ней хранятся только правила расчета. Это экономит колоссальное количество дискового пространства - ведь в реальных системах до 90% данных являются вычисляемыми.
Отношения используются не только при обычных операциях агрегирования и в запросах, но и, например, при определении иерархий. Иерархия описывается как отношение “само на себя” (внутри одного измерения).
Защита данных
Доступ к Express Server защищен двумя способами: во-первых, предусмотрены ограничения на подключение к нему, и во-вторых, применяются встроенные средства ограничения доступа к данным и другим объектам, которыми управляет Express Server. Для проверки полномочий при подключении к серверу Express пользователю предлагается указать свой идентификатор и пароль, или же Express Server может аутентифицировать пользователя, непосредственно обращаясь к операционной системе.
Специальные команды языка хранимых процедур дают возможность управлять доступом к объектам базы данных. Их можно использовать в подсистеме защиты базы данных, в которой определяются права доступа для всех пользователей.
Администратор может выдать или отменить полномочия на доступ в режимах “только чтение” или “чтение/запись” для любых объектов Express, в том числе и хранимых процедур. Для усиления защиты приложения можно также удалить исходный программный код, ассоциируемый с процедурами. В этом случае “посторонние” не смогут изменить логику приложения, даже если у них имеется разрешение на доступ к процедуре.
Средства разработки Oracle Express
Oracle Express Objects представляет собой объектно-ориентированную среду с графическим интерфейсом, предназначенную для быстрой разработки OLAP-приложений в среде клиент-сервер. В качестве языка управления объектами в Oracle Express Objects используется Express Basic, который синтаксически совместим с Microsoft Visual Basic.
Сегодня, благодаря постоянно расширяющимся возможностям Oracle Express Objects, процесс разработки приложений поддержки принятия решений упрощается, а получающиеся в результате системы имеют более высокую мощность. Эта среда разработки приложений имеет привязанные к данным визуальные представления - таблицы и графики - для просмотра и управления данными Oracle Express. Используя их, конечный пользователь имеет возможность детализировать данные по любому измерению, получать их разные срезы (“вращать” многомерные представления), проводить агрегирование различными способами, а также проводить анализ типа “что, если”.
Кроме того, имеется мощный встроенный механизм формирования запросов. Объект “Селектор” - набор инструментальных средств конечного пользователя для создания подмножеств данных. Эти подмножества могут быть основаны на диапазонах значений, уровнях в иерархии, текстовом поиске, условиях сравнения, критериях исключения и анализе “наилучший/наихудший”.
Отчеты и аналитические приложения, разработанные с помощью Oracle Express Objects, легко распространяются среди пользователей. С абсолютно идентичной функциональностью они выполняются как в среде Express Objects, так и под управлением Express Analyzer. Последний может использоваться не только в качестве среды выполнения, но и как самостоятельное средство разработки простых приложений, называемых брифингами. Это многостраничные документы с интерактивными таблицами, графиками и OLE-объектами. Опытные пользователи могут создавать брифинги, а обычные пользователи “читать”.
Кроме Express Analyzer или Express Objects, пользователи могут получать динамический доступ к многомерным данным, используя в качестве интерфейса Microsoft Excel. Реализована эта возможность с помощью компонента Express Spreadsheet Add-In, который позволяет не только строить в среде Excel интерактивные многомерные отчеты, используя все функции OLAP, но и создавать приложения с помощью Visual Basic или механизма OLE Automation.
Oracle Financial Analyzer
Oracle Financial Analyzer - распределенное приложение для составления финансовой отчетности, финансового моделирования, анализа, создания бюджета и планирования. Благодаря объединению централизованного механизма управления данными с мощными аналитическими средствами система позволяет предприятиям достигать особо важных финансовых целей - управлять издержками, анализировать эффективность, оценивать альтернативы, распределять затраты, составлять и консолидировать бюджеты, вырабатывать будущие направления развития.
Oracle Financial Analyzer может осуществлять доступ к данным из электронных таблиц, главных книг, реляционных баз данных и унаследованных систем. Этот продукт интегрирован с ядром финансовых приложений Oracle - Oracle General Ledger. Такая интеграция значительно упрощает поступление и поддержку данных, обеспечивая более эффективное по стоимости решение управления финансами.
Oracle Sales Analyzer
Oracle Sales Analyzer - приложение, предназначенное для анализа данных о продажах, маркетинге и т. д. Тенденции продаж, маркетинговые кампании, прибыльность продукта или клиента, жизненный цикл, эффективность продвижения товара могут быть оценены с помощью этого продукта.
В Oracle Sales Analyzer встроены возможности построения рыночных индикаторов эффективности и других показателей, таких, как динамика продаж, доля рынка, различные индексы, результаты с нарастающим итогом с начала финансового года, скользящее среднее и т. д. Специальные виды отчетов, очень часто применяющиеся при анализе продаж и в маркетинге, помогают быстро сортировать продукты и клиентов по различным критериям. Кроме того, приложение позволяет конечному пользователю создавать группы товаров, клиентов или периодов времени и, рассматривая их как единое целое, сравнивать с остальными. Это может быть очень полезным, например, при оценке результатов маркетинговых кампаний.
Интеграция с RDBMS
Уже довольно долгое время не утихает дискуссия по поводу наилучшего подхода к хранению данных в системах поддержки принятия решений. Существуют две противоположные точки зрения. Первая отражает подход MOLAP (многомерный OLAP), при котором все данные хранятся либо вычисляются по формулам в многомерной базе данных, примером которой служит Oracle Express Server. Другой подход - ROLAP (реляционный OLAP), когда все хранится в реляционной БД, а для пользователя создается многомерное представление на логическом уровне в виде слоя метаданных (таблиц) в той же RDBMS. Этот слой отображает реляционные термины (таблицы, связи, ключи) в многомерные (измерения, иерархии, показатели) и таким образом скрывает от конечного пользователя сложную структуру реляционной БД. Одной из лучших реализаций технологии ROLAP “в чистом виде”, предлагаемой корпорацией Oracle, является Discoverer 3.0 .
С нашей точки зрения, ни один из подходов не может претендовать на абсолютную универсальность. У каждого есть свои достоинства и недостатки, иначе один из них непременно (и довольно быстро) вытеснил бы другой. Например, многомерная модель - не всегда наилучшая с точки зрения хранения, и существуют практические ограничения на размер МБД. Для базы данных Express эти ограничения сейчас составляют порядка сотни гигабайт (самые большие из существующих сейчас реализаций имеют размер около 80 Гб), что, конечно, далеко не предел для объемов корпоративных данных, накапливаемых в большой организации. Однако для многомерной БД характерна высочайшая производительность, мощная аналитика и поддержка сложных запросов, которые очень трудно и неудобно реализовывать в SQL. С другой стороны, при использовании подхода ROLAP нет необходимости дублировать данные, пусть даже частично; в реляционных БД могут храниться терабайты данных, в них гораздо более развиты методы репликации, восстановления после сбоев и т. д. Это связано с тем, что RDBMS изначально были ориентированы на сбор и хранение данных, однако в задачах поддержки принятия решений за это приходится платить значительным ограничением аналитических возможностей SQL и снижением производительности.
Oracle предлагает гибкое и мощное решение этой дилеммы. Oracle Express Relational Access Manager - это модуль Express Server, который создает динамические связи с реляционными данными. В качестве клиентской части используется Relational Access Administrator - графическая среда, где собраны все необходимые для связи Express с реляционными данными компоненты. Структуры метаданных, с помощью которых устанавливается соответствие между реляционными объектами и структурами Express, содержатся в наборе таблиц в реляционной БД. После построения отображения запускается процесс генерации многомерных метаданных, с которыми работают приложения Express. С помощью утилиты Oracle Express Batch Manager можно запланировать последующие автоматические запуски процедуры обновления метаданных (как, впрочем, и любые другие действия над базой данных Express).
Relational Access Manager позволяет реализовывать произвольные схемы хранения данных - ROLAP, MOLAP или HOLAP (гибридный OLAP). Последний дает возможность разработчику балансировать между двумя крайними подходами, максимально используя преимущества каждого из них. Любая часть данных (например, на верхних уровнях агрегирования) может храниться в многомерной базе Express, а все остальное - в реляционной БД. При необходимости эту пропорцию можно легко изменить. Независимо от способа хранения пользователи работают с обычным для них многомерным представлением данных. По всей видимости, именно гибридные схемы OLAP в сочетании с технологией хранилищ данных служат оптимальным решением при построении мощных корпоративных систем поддержки принятия решений.
Express и Сеть
Технология Express позволяет пользователям работать не только в среде клиент-сервер, но и в Интернет/интранет. Это обеспечивает более дешевое сопровождение приложений, уменьшение нагрузки на рабочие станции и независимость приложения от клиентской платформы, так как в качестве клиентской части используется обычный браузер.
Работу в Web обеспечивают следующие компоненты:
- Oracle Express Web Agent, состоящий из модуля CGI и интерфейса к менеджеру сеанса Express Server;
- Oracle Express Web Agent Developer’s Toolkit - набор хранимых процедур Express, используемых для генерации документов HTML и Java-аплетов;
- Oracle Express Web Publisher - графическая среда, позволяющая разработчику и даже просто опытному пользователю создавать интерактивные Web-сайты, дающие возможность анализировать OLAP-информацию в табличном и графическом виде в режиме реального времени.
Динамическая генерация HTML и Java позволяют всегда гарантировать пользователям получение документов, содержащих самую свежую информацию. Кроме того, так как документы автоматически генерируются по запросу и не сохраняются после их пересылки адресату, уменьшается число объектов, которыми нужно управлять администратору Web-сайта. Легко представить себе, до какой невообразимой и неуправляемой величины могло бы возрасти число файлов, хранящихся на Web-сайте с технологией OLAP, если каждое возможное представление информации хранить как отдельный документ.
Web-приложения в среде Express можно создавать несколькими способами. Простейший из них заключается в генерации Web-брифингов (приложений определенной структуры) с помощью drag and drop интерфейса Express Web Publisher, аналогичного Express Analyzer. Далее, можно включить специальные ссылки в документ HTML, создаваемый с помощью любого средства построения Web-страниц. При таком подходе удается объединить лучшие стороны инструментария Web со всей мощью Express Server. И наконец, еще один подход заключается в написании хранимой процедуры Express, которая будет полностью создавать документы Web. Так как Express обладает развитым языком хранимых процедур с очень сильными возможностями обработки текста, можно целиком создать свой Web-сайт и управлять им, используя только хранимые процедуры Express.
Oracle Discoverer 3.0
Oracle Discoverer - средство формирования произвольных запросов класса ROLAP, предоставляющее пользователю немедленный доступ к критически важной деловой информации. Oracle Discoverer был разработан как для начинающих, так и для опытных пользователей. Начинающие пользователи могут получать доступ к детальной и суммарной информации с помощью реляционных запросов, отчетов и диаграмм без необходимости знания программирования или наличия опыта в области баз данных. Опытные пользователи могут также сами модифицировать запросы и отчеты.
Discoverer дает возможность пользователям анализировать данные, оперируя знакомыми для них терминами. Сделано это путем применения специального слоя метаданных (End User Layer), который скрывает от конечного пользователя сложную внутреннюю структуру реляционной БД, позволяя ему работать с привычными бизнес-объектами. На логическом уровне End User Layer реализует многомерное представление данных, что дает возможность пользователю проводить характерные для многомерного анализа навигацию по иерархиям и “вращение” отчетов.
Discoverer уникально сочетает в себе простоту использования, производительность и легкость администрирования. Его применение очень быстро дает ощутимый результат - после внедрения тратится минимум усилий и времени на обучение пользователей, после чего организация получает немедленную выгоду от упростившегося доступа к бизнес-информации.
Oracle Discoverer вместе с продуктами Oracle Express способны удовлетворить полный спектр потребностей пользователя - от запросов и простого анализа данных, содержащихся в хранилище или в системе оперативной обработки транзакций (OLTP), до комплексного анализа, прогнозирования и моделирования и построения объектно-ориентированных приложений OLAP уровня предприятия.
С авторами можно связаться по адресам: rsamokhv@ru.oracle.com и melashki@ru.oracle.com.