КОНСАЛТИНГ Интеграция данных и бизнес-анализ информации (business intelligence) Сравнение платформ Business Intelligence компаний Business Objects S.A. и MicroStrategy Inc. Одними из самых крупных игроков на рынке программного обеспечения комплексного бизнесанализа данных (Business Intelligence - BI) являются компании MicroStrategy Inc. и BusinessObjects SA. По данным IDC эти компаниям в совокупности принадлежит около 15% рынка. Продукты этих компаний обеспечивают решение задач построения запросов к информационным хранилищам, формирования корпоративной отчетности, OLAP-анализа, распространения отчетности среди пользователей и публикации аналитических документов на Web-ресурсах. Введение Было бы интересно попытаться сопоставить продукты этих производителей, тем более, что компания MicroStrategy, проводя агрессивную маркетинговую политику, разместила у себя на сайте любопытный документ «Take the MicroStrategy vs. Business Objects QuickTour». В документе сравнивается реализация некоторых ключевых BI-функций в продуктах этих компаний. В частности, рассматриваются такие возможности: Подход к созданию аналитической отчетности. Чтобы оценить возможность использования коммерческого BI-продукта для конкретной задачи, нужно знать реализованные в продукте принципы работы с аналитическими документами, возможности форматирования отчетов, аналитические операции. Архитектура WEB-доступа. Доступ к аналитической отчетности через WEB позволяет организовывать удобную и привычную интернет-инфраструктуру распространения информации. Для интернет-решений будет важно, каким образом BI-продукт поддерживает WEB-технологии. Масштабируемость продуктов. Растущие объемы данных и число пользователей могут отрицательно сказываться на производительности системы. Возможности разграничения доступа к данным. Для аналитических систем, оперирующих с совокупными показателями деятельности компании или группы компаний, необходимо обеспечивать четкое разграничение доступа к коммерческой информации. Поддержка аналитических функций. Для решений, ориентированных на проведение анализа, нужно дополнительно оценивать состав предлагаемых аналитических функций и возможностей. Доставка отчетности пользователям. Переход от распространения аналитической отчетности по запросу пользователя на событийно-управляемую рассылку на различные устройства потребует рассмотрения у продуктов функций активной доставки информации. MicroStrategy утверждает, что все ключевые BI-функции лучше реализованы в ее собственных продуктах. Не желая давать оценки плохо-хорошо и не являясь приверженцем какого-то одного продукта, в настоящей статье содержится самостоятельный анализ этих функций, дающий повод к размышлению о возможностях применения продуктов. Статья основана на опыте использования продуктов MicroStrategy и Business Objects в проектах создания центров корпоративной и аналитической отчетности. Часть 1. Подход к созданию аналитической отчетности Для начала, рассмотрим «толстые» клиентские продукты MicroStrategy Desktop 7.2.0 и BusinessObjects 5.1.5. Оба продукта позволяют на основе подготовленных метаданных формировать аналитическую отчетность. При этом используются различные подходы. Россия, 123182, Москва, пл-дь Академика Курчатова, 1 737-4080 (многоканальный) info@bipartner.ru, www.bipartner.ru Создание отчетов и детализация MicroStrategy, критикуя Business Objects, говорит, что этот продукт реализует настольный анализ (Desktop OLAP), т.е. все данные содержатся на локальном компьютере пользователя, там же вычисляются аналитические функции. При получении отчета выполняются следующие действия: 1. пользователь выбирает объекты предметной области, необходимые ему для анализа/отчета; 2. клиентское ПО BusinessObjects, исходя из описаний объектов, строит SQL-запрос и направляет его РСУБД; 3. РСУБД выполняет запрос и целиком передает данные на клиента; 4. клиентское ПО интерпретирует данные, строит микрокуб, выполняет, где необходимо, простейшие аналитические функции (суммирование, усреднение и т.д.), после чего выводит результат; 5. все пользовательские запросы детализации, выходящей за границы куба, требуют повторного построения целого куба. В целом, описанная последовательность верна. Действительно, BusinessObjects получает все данные на компьютер пользователя, строит здесь аналитический куб и выполняет аналитические функции. Однако, при создании запроса в BusinessObjects, пользователь может регулировать размер куба, получаемого на клиенте, устанавливая границы анализа. В границах анализа можно указать дополнительные аналитические уровни, по которым нужно получить данные. Указание дополнительных границ анализа усложняет запрос к базе данных, требует большего времени на выполнение и увеличивает объем данных, хранящихся в памяти клиента. Однако, при необходимости детализации на заранее выбранные уровни в границах анализа, результат получается мгновенно, без обращения к базе данных. Таким образом, BusinessObjects действительно реализует DOLAP в рамках данных имеющихся на клиенте. Но это не всё. Если попытаться детализировать данные на уровни, заранее не указанные в границах анализа, BusinessObjects создает дополнительный запрос к базе данных, чтобы обеспечить требуемую детализацию. Этот запрос приведет к построению еще большего куба, чем при первоначальном запросе. Но и этим можно управлять - если в настройках BusinessObjects выставить флаг «Применять фильтры при детализации», тогда запрос будет сгенерирован так, чтобы результат фактически содержал только визуально требуемые данные. Это позволяет говорить, что BusinessObjects позволяет осуществлять ROLAP-анализ. Компания MicroStrategy утверждает, что ее продукты изначально спроектированы и предназначены для ROLAP-анализа больших хранилищ данных. Чтобы получить отчет, выполняются следующие действия: 1. пользователь выбирает объекты предметной области, необходимые ему для анализа/отчета; 2. клиентское приложение MicroStrategy Agent передает состав запроса в Intelligence Server. MicroStrategy Intelligence Server представляет собой сервер приложений, реализующий обработку аналитических запросов; 3. Intelligence Server, используя метаданные, строит и выполняет SQL-запрос, распределяя обработку данных между РСУБД и внутренним аналитическим ядром; 4. результат работы Intelligence Server передается клиенту; 5. клиентское ПО выводит результат. Главное отличие в порядке получения отчета в MicroStrategy Agent и BusinessObjects – наличие выделенного OLAP-сервера приложений Intelligence Server. Для BusinessObjects такой сервер фактически содержится на клиенте (рис.1). -2- Рис. 1 Принципы доступа к базам данных из «толстых» клиентов Business Objects .exe База данных документ встроенный OLAPкомпонент MicroStrategy Agent .exe База данных Отчет Intelligence Server В MicroStrategy невозможно заранее устанавливать границы анализа. Все требования детализации выполняются через генерацию дополнительных запросов, также выполняемых через Intelligence Server. Теперь попытаемся оценить, какое решение будет более производительным в части времени получения первоначальных данных отчета и последующей детализации. Оказывается, что при простой схеме (напр. когда показатель является суммой факта в условиях «звезды») продукты MicroStrategy и BusinessObjects генерируют примерно одинаковый SQL-запрос. В таком случае, оценка производительности сводится ко времени выполнения OLAP-подобных запросов СУБД, и не зависит от средств анализа. Отличия начинаются при создании сложных аналитических отчетов. Чтобы рассмотреть подходы к созданию усложненной аналитической отчетности нужно разобрать структуру документов реализованную в продуктах компаний. Структура аналитических документов Рассмотрим структуру документа BusinessObjects (рис.2). Документ содержит несколько отчетов (аналог листа в Excel). Каждый отчет может содержать произвольное количество таблиц и диаграмм. Информацию для таблиц и диаграмм поставляют провайдеры данных. Провайдер данных – компонент BusinessObjects, генерирующий SQL-запрос, на основе описаний бизнес-объектов, выбранных пользователем. Как крайние случаи, провайдеру данных можно на вход передать «рукописный» SQL, плоский файл или указать хранимую процедуру. Потенциально, документ BusinessObjects может содержать несколько провайдеров, возможно использующих разные базы данных. Самое главное, что данные, полученные провайдерами, отделены от их представления. Т.е. диаграммы или графики могут показывать часть данных, или агрегированные значения данных. Более того, диаграмм и графиков может вообще не быть в документе. Документ BusinessObjects сохраняется как файл. В этом файле содержится: описания провайдеров данных; данные; описание визуального представления данных. -3- Рис. 2 Формирование документов BussinesObjects Документ BusinessObjects База данных А База данных В Провайдер данных A Провайдер данных В Таблицы и диаграммы Отчет (1) Таблицы и диаграммы Отчет (2) Таблицы и диаграммы Отчет (3) Результат запроса A Результат запроса В данные документа визуальное представление документа При открытии файла источники провайдеров данных могут быть не доступны, т.к. данные хранятся вместе с документом. Можно продолжать работать с отчетами в автономном режиме, напр. создавать новые диаграммы. Если источники доступны, можно обновить данные – соответственно Рис. 3 Формирование документов MicroStrategy HTML-документ MicroStrategy Дизайнер отчета (1) Результат запроса (1) данные отчета (1) База данных Intelligence Server Дизайнер отчета (2) Отчет (1) визуальное представление отчета (1) Результат запроса (2) данные отчета (2) Дизайнер отчета (3) Таблица или диаграмма Таблица или диаграмма Отчет (2) визуальное представление отчета (2) Результат запроса (3) данные отчета (3) Таблица или диаграмма Отчет (3) визуальное представление отчета (3) перерисуются все визуальные элементы документа. У MicroStrategy реализован другой подход к формированию отчетности (рис.3). Базовым понятием MicroStrategy является отчет. Отчет создается с помощью дизайнера отчетов, в котором пользователь указывает набор бизнес-объектов, необходимых для отчета. При запуске отчета на -4- выполнение, его описание передается в Intelligence Server, который на основе метаданных генерирует SQL-запросы, а результаты их выполнения обрабатывает и передает клиенту. У пользователя есть возможность представить данные в виде таблицы или диаграммы. В рамках одного отчета создавать несколько представлений данных (несколько графиков или отчетов) невозможно. Описание отчета, включая визуальное представление, хранится в метаданных MicroStrategy. Данные отчета ни где не сохраняются, и при открытии отчет выполняется заново. Отчет в MicroStrategy, в отличие от аналогичного термина в BusinessObjects, является самостоятельной аналитической единицей. Предполагается, что анализ данных пользователь проводит внутри отчета, а не документа. Для составления документа, содержащего несколько таблиц и диаграмм, MicroStrategy предлагает использовать html-документы. Для редактирования html-документов MicroStrategy содержит специальный редактор документов. В этом редакторе, на «чистом листе» размещаются существующие отчеты, а также обычные презентационные элементы: картинки, подписи, html-ссылки. Получившийся таким образом документ сохраняется в мета-данных MicroStrategy. При открытии документа в браузере, Intelligence Server последовательно исполняет отчеты, содержащиеся в документе, после чего данные визуализируются в документе в соответствии с описаниями отчетов и выбранными стилями. (Подробнее архитектура WEB-доступа будет рассмотрена в следующей части). Форматирование отчетов В целом, оба продукта располагают развитыми возможностями форматирования отчетов и документов. Business Objects Опция форматирования MicroStrategy Agent WISYWIG + - OLAP-навигация + + Out-line режим + + Библиотека стилей + + Вращение, кросс-таблицы + + Итоги + + Предупреждения (thrasholds) + + Секционное форматирование + - Сортировка + + Фильтры + + Форматирование ячеек + + Функциональные ячейки (напр. значение промта запроса) + - Однако, поддержка WISYWIG, а также некоторые другие опции, позволяют утверждать что форматирование лучше реализовано в Business Objects. Сложная аналитика Итак, как же быть при необходимости получать отчеты, содержащие несколько сложных метрик? Сложной метрикой можно считать напр. такую метрику: объем продаж усредненный по сумме трех лучших месяцев прошлого года. Как в условиях простой схемы хранилища данных получить отчет, содержащий несколько таких метрик? -5- Для MicroStrategy эта задача может быть решена средствами самого продукта. Во-первых, MicroStrategy позволяет определять составные (compound) метрики – метрики, которые строятся на основе других метрик. Расширенный редактор метрик позволяет определить независимые фильтры метрик, правила и уровни группировок. Определение метрики-примера можно естественно и логично построить в MicroStrategy. Во-вторых, MicroStrategy содержит большое количество сложных аналитических функций. Всё это позволяет определять в MicroStrategy самые изощренные метрики. При создании отчета пользователь выбирает набор необходимых метрик, а дальше MicroStrategy Intelligence Server, используя многопроходной SQL, вычисляет и объединяет значения, выдавая готовый результат. Здесь надо быть готовым к тому, что многопроходной SQL требует от Intelligence Server создания в СУБД временных таблиц, время жизни которых совпадает со временем построения отчета. И в крайних ситуациях размер временной таблицы может быть соизмерим с размером хранилища данных. Для Business Objects эта задача «естественным образом» вряд ли может быть решена. Можно предложить несколько выходов: использовать витрину данных. Т.е. использовать средства РСУБД, в которой находится хранилище данных, для того, чтобы заранее, на стадии пополнения хранилища, вычислять сложные метрики; при работе с документом в Business Objects, можно создавать новые переменные с использованием встроенных аналитических функций. Однако ограничения по использованию встроенных функций не всегда позволят вычислить любую метрику. К тому же, использование этих функций требует наличия базовых данных в документе, объем которых может оказаться большим; создавать несколько провайдеров, каждый из которых будет получать значения одной метрики. Далее можно объединить данные провайдеров и получить искомый результат. В некоторых случаях даже потребуется несколько провайдеров для вычисления одной метрики. Возможно, придется вычислять некоторые значения путем ручного определения SQL-запроса; усложнять метаданные, создавая специальные объекты, в которых вручную кодировать SQLзапрос; комбинировать указанные способы. Выводы этой части 1. В условиях простой схемы информационного хранилища и простых аналитических требований производительность продуктов MicroStrategy и Business Objects определяются производительностью РСУБД. 2. Business Objects позволяет реализовывать настольный анализ в автономном режиме. Для работы с отчетами MicroStrategy в настольном режиме необходим сервер приложений Intelligence Server, источник данных и метаданные. 3. В целом, Business Objects представляет более обширные возможности форматирования отчетности без программирования, чем MicroStrategy. 4. Сложные аналитические показатели естественным образом реализуются в MicroStrategy, в отличие от Business Objects. Андрей Китаев, Ведущий специалист компании BI Partner kaa@bipartner.ru -6-