Введение в базы данных
Часть 10. Средства Business Intelligence
Специализированные средства создания отчетов
Генераторы отчетов, встроенные в средства разработки
«Нетрадиционные» средства создания отчетов
Средства поиска закономерностей (Data Mining-средства)
BI-средства масштаба предприятия и средства разработки BI-приложений
Crystal Reports (Seagate Software)
Express Server, Express Objects и Express Analyser (Oracle)
Seagate Info (Seagate Software)
Hyperion Essbase (Hyperion Solutions)
WebFOCUS Business Intelligence Suite (Information Builders)
Platform for Enterprise Business Intelligence (Cognos)
BusinessObjects 2000 (Business Objects)
SQL Server Analysis Services (Microsoft)
Предыдущая статья данного цикла была посвящена рассмотрению средств разработки клиентских приложений. Результатом указанного этапа является готовый продукт, позволяющий пользователям вводить или редактировать данные.
Нередко готовая информационная система включает не только средства ввода и редактирования данных, но и инструменты анализа введенных пользователями данных и средства представления их в более удобном для восприятия виде (графики, сводные таблицы, отчеты), позволяющем принимать обоснованные решения (например, о дальнейших направлениях развития бизнеса компании). Именно этим продуктам, нередко называемым общим термином Business Intelligence (BI) tools, и посвящена настоящая статья, последняя в цикле «Введение в базы данных».
К современным средствам Business Intelligence относятся генераторы отчетов, средства аналитической обработки данных, средства разработки BI-приложений (BI Platforms) и так называемые Enterprise BI Suites — средства анализа и обработки данных масштаба предприятия, которые позволяют осуществлять комплекс действий, связанных с анализом данных и созданием отчетов, и нередко включают в себя интегрированный набор BI-инструментов и средства разработки BI-приложений.
Мы начнем обзор средств Business Intelligence с отчетов и средств их создания, затем поговорим о средствах аналитической обработки данных (OLAP-средствах) и завершим нашу статью рассказом о средствах поиска закономерностей (Data Mining tools), попутно рассматривая наиболее популярные продукты, реализующие подобную функциональность, включая средства анализа и обработки данных масштаба предприятия. В последнее время эти продукты широко применяются при принятии управленческих решений и спектр их достаточно широк — от простейших средств построения сводных таблиц и диаграмм, входящих в состав офисных продуктов, до средств анализа данных и поиска закономерностей, стоимость которых составляет десятки тысяч долларов.
Отчеты и средства их создания
Отчет представляет собой документ, содержимое которого динамически формируется на основе информации, содержащейся в базе данных. Такой документ может состоять из различных частей — колонтитулов, повторяющихся на каждой странице, заголовка, находящегося в начале отчета, областей, в которых располагаются фактические данные, областей, в которых расположены агрегатные данные (суммы, средние и т.д.), и др. Отчеты могут содержать данные из одной или нескольких таблиц либо запросов, а также данные из одной или нескольких записей. Данные одной записи могут занимать строку в напечатанной таблице, прямоугольную область на листе, а также целый лист или даже несколько листов.
Типичным примером отчета, содержащего одну запись, может быть личная карточка сотрудника в отделе кадров, а примером отчета, содержащего несколько записей, — ведомость выдачи заработной платы, комплект однотипных писем, рассылаемых разным клиентам и содержащих их персональные реквизиты, набор почтовых этикеток, напечатанный на специальной бумаге с прямоугольными наклейками. Отчетом, содержащим данные из двух связанных таблиц или запросов, может быть, в частности, счет, в котором помимо сведений о заказе (дата, время, реквизиты заказчика) содержится список заказанных товаров с их количеством, ценами и скидками.
Кроме того, отчет может содержать только агрегатные данные (суммы, средние, максимальные и минимальные значения и некоторые другие статистические вычисления). Типичным примером такого отчета является сводная таблица, созданная, например, с помощью Microsoft Excel.
Отчеты создаются с помощью нескольких категорий средств. Ниже мы рассмотрим те из них, которые встречаются наиболее часто.
Специализированные средства создания отчетов
В настоящее время на рынке программного обеспечения представлено несколько продуктов, относящихся к специализированным средствам создания отчетов для разных категорий пользователей (специалистов, занимающихся подготовкой отчетов, рядовых пользователей, разработчиков приложений, разработчиков Web-сайтов и др.). Нередко один и тот же продукт существует в нескольких редакциях, ориентированных на различные категории пользователей.
Современные специализированные средства создания отчетов обычно характеризуются следующими особенностями:
- поддержка различных механизмов доступа к данным (как правило, ODBC и OLE DB);
- наличие мастеров и визуальных инструментов, облегчающих рядовым пользователям подготовку отчетов, в том числе достаточно сложных;
- высокоточные инструменты позиционирования элементов отчета при печати (что немаловажно при заполнении бланков);
- наличие средств деловой графики, а иногда простейших встроенных геоинформационных систем;
- интеграция с офисными приложениями (в большинстве случаев — с приложениями Microsoft Office). Как правило, поддерживается не только экспорт отчетов в документы этих приложений, но нередко и доступ к генератору отчетов из среды этих приложений с помощью модулей расширений;
- поддержка публикации данных в Internet. Обычно поддерживается не только экспорт отчета в формат HTML, но и почти точное воспроизведение в браузере всех элементов отчета (чаще с помощью CSS, DHTML и применения графики), а нередко и генерация отчетов на сервере с использованием ASP-кода;
- интеграция с наиболее популярными средствами разработки. В комплект поставки версий, предназначенных для разработчиков приложений, обычно входят библиотеки, предоставляющие интерфейс к Run-time-версиям генератора отчетов. В последнее время в комплект поставки принято также включать элементы управления ActiveX, использующие эти же библиотеки, иногда включаются и другие средства интеграции с приложениями, например серверные компоненты или VCL-компоненты Delphi;
- встроенные языки программирования для создания формул;
- возможность создания аналитических отчетов (то есть отчетов, состоящих из агрегатных данных).
Безусловным лидером на рынке среди этих средств создания отчета является Seagate Crystal Reports фирмы Seagate Software (см. врезку).
Помимо Crystal Reports имеется еще несколько известных продуктов подобного класса, созданных производителями серверных СУБД (Oracle Reports Developer, Sybase InfoMaker и др.). Поскольку данные продукты создаются производителями серверных СУБД, они легко интегрируются прежде всего с этими СУБД, при этом нередко используя доступ к данным указанных СУБД на основе клиентских API. Однако в подавляющем большинстве случаев они поддерживают получение данных и из других источников.
Генераторы отчетов, встроенные в средства разработки
Еще одной популярной категорией средств создания документов на основе информации из баз данных являются генераторы отчетов, встроенные в средства разработки и настольные СУБД. Типичными представителями таких генераторов отчетов являются QuickReport, входящий в комплект поставки Delphi и C++Builder начиная с версии 2.0, и генератор отчетов, встроенный в Microsoft Access 2000.
Как правило, инструменты подобного класса обладают гораздо меньшими возможностями, нежели специализированные средства создания отчетов. Они могут, например, поддерживать не все механизмы доступа к данным или не иметь высокоточных инструментов позиционирования элементов отчета, не поддерживать (или ограниченно поддерживать) экспорт отчета в файлы других форматов. Дело в том, что назначение этих генераторов отчетов несколько иное, чем у специализированных инструментов: они применяются, когда основными требованиями к печатному документу, генерируемому приложением или СУБД, является скорость и простота его получения, а не высокая точность печати или сложность алгоритма вычисления печатаемых данных.
Специализированные генераторы отчетов или их Run-time-версии, как правило, требуют отдельной установки и, что немаловажно, обычно нуждаются в соединении с базой данных, отличной от соединения, используемого приложением, которое обращается к такой Run-time-версии. Последнее требование нередко влечет за собой приобретение дополнительных клиентских лицензий. Встроенные же генераторы отчетов часто позволяют обойтись тем же самым соединением с базой данных, которое используется приложением или средой настольной СУБД для других целей, например для редактирования данных (а нередко и той же самой областью памяти, в которой хранятся результаты выполненных приложением запросов); в этом случае дополнительная клиентская лицензия такому приложению не требуется. Естественно, за указанные преимущества приходится расплачиваться отсутствием тех или иных возможностей, доступных в специализированных средствах.
К генераторам отчетов, встроенным в средства разработки, можно также отнести и продукты сторонних фирм, содержащие библиотеки классов или компонентов, которые предназначены для использования внутри приложений. К таким продуктам относятся, например, компоненты сторонних производителей для Delphi и C++Builder, такие как ReportBuilder (Digital Metaphors), ReportPrinter Pro (Nevrona Design), ACE Reporter (SCT Associates), Shazam Report Wizard (Shazamware Solutions). Подобного рода генераторы отчетов могут использовать либо дизайнер форм средства разработки, для которого они предназначены, либо собственный дизайнер отчетов. Как правило, приложения, их применяющие, также могут использовать при генерации отчета то же соединение с базой данных и ту же область оперативной памяти с результатами запросов, что уже создана приложением для других целей.
«Нетрадиционные» средства создания отчетов
Нередко в качестве средств создания отчетов применяются приложения, которые, с одной стороны, имеют высококачественные средства управления печатью документов или конвертирования их в различные форматы, а с другой стороны, являются серверами автоматизации, предоставляющими доступ к этим возможностям с помощью своих объектных моделей. Наиболее часто в качестве таких генераторов отчетов используются приложения Microsoft Office, обычно Microsoft Word и Microsoft Excel. В этом случае, как правило, при создании отчета возможность спроектировать его макет с помощью визуальных средств отсутствует, поэтому чаще всего такой способ генерации печатных документов используется не рядовыми пользователями, а программистами, создающими решения на базе Microsoft Office. Приложения, являющиеся частью таких решений и «заставляющие» сервер автоматизации выполнять те или иные действия (в данном случае создавать или печатать документ требуемого формата, содержащий требуемые данные), называются контроллерами автоматизации.
К преимуществам создания отчетов с помощью Microsoft Office относится определенная гибкость при выборе механизма доступа к данным: можно применять и механизмы доступа к данным самого Office (ODBC и OLE DB), и такие механизмы доступа к данным, которые поддерживаются средством разработки, применяемым при создании такого приложения. Помимо этого при генерации печатного документа в этом случае можно производить сколь угодно сложные вычисления и преобразования данных (так, как это делается внутри приложения, создающего такой документ) и к тому же записывать макросы, сохраняемые в дальнейшем в шаблоне будущего отчета и также позволяющие реализовать ту или иную последовательность действий.
Наиболее часто для создания таких контроллеров автоматизации применяется Visual Basic или VBA; в справочной системе Microsoft Office имеются файлы, содержащие подробное описание объектных моделей приложений Office c примерами их использования. Пользователи Delphi, интересующиеся этими вопросами, могут найти подробности, связанные с созданием контроллеров Microsoft Office, в статьях цикла «Автоматизация приложений Microsoft Office в примерах» (см. CD-ROM-приложение КомпьютерПресс № 11, 12’2000).
Отметим также, что с помощью приложений Microsoft Office можно создавать простейшие отчеты, не применяя ни программирования, ни создания макросов. Так, c помощью пункта меню Microsoft Word 2000 Tools | Mail Merge (Сервис | Слияние) можно создать отчет, содержащий постоянные данные (например, текст письма) и данные из записей таблицы базы данных, доступной с помощью ODBC или OLE DB, либо из другого документа Office (например, адрес, имя и отчество получателя письма) для создания набора однотипных документов (в частности, рассылаемых по почте писем). А с помощью Microsoft Excel можно выполнить многотабличный запрос к базе данных (отредактировав его в Microsoft Query) и получить результат в виде рабочей книги.
Итак, мы рассмотрели возможные способы генерации отчетов и средства, применяемые для этого. Однако создание отчетов — не единственный способ применения данных, накопленных в процессе работы пользователей. Принятие управленческих решений, особенно в области стратегического планирования, нередко требует не только генерации отчетов, но и дополнительной аналитической обработки данных (OLAP, On-line Analytical Processing). Следующий раздел будет посвящен OLAP-средствам и их применению.
OLAP-средства
Информационные системы масштаба предприятия, как правило, содержат приложения, применяемые менеджерами высшего звена и предназначенные для комплексного многомерного анализа данных, их динамики, тенденций и т.п. Такой анализ в конечном итоге призван способствовать принятию решений. Нередко такие системы так и называются — системы поддержки принятия решений. Указанные приложения обычно обладают средствами предоставления пользователю агрегатных данных для различных выборок из исходного набора в удобном для восприятия и анализа виде. Чаще всего такие агрегатные функции образуют многомерный (а следовательно, нереляционный) набор данных (нередко называемый гиперкубом или метакубом), оси которого содержат параметры, а ячейки — зависящие от них агрегатные данные. Вдоль каждой оси данные могут быть организованы в виде иерархии, отражающей различные уровни их детализации. Благодаря такой модели данных пользователи могут формулировать сложные запросы, генерировать отчеты, получать подмножества данных.
Технология комплексного многомерного анализа данных получила название OLAP (On-Line Analytical Processing). OLAP — ключевой компонент организации хранилищ данных (Data warehousing), то есть сбора, отсеивания и предварительной обработки данных с целью предоставления результирующей информации пользователям для статистического анализа (а нередко и для создания аналитических отчетов). Концепция OLAP была описана в 1993 году Э.Ф.Коддом, известным исследователем баз данных и автором реляционной модели данных.
В настоящее время поддержка OLAP реализована во многих СУБД и инструментах, так как является оптимальным решением для большого класса приложений, где пользователи сталкиваются с многомерными данными (то есть с данными, зависящими от нескольких параметров, например от времени, местоположения и других характеристик).
Нередко для повышения скорости выполнения запросов пользователей данные кубов вычисляются заранее и хранятся в многомерной базе данных.
Более подробно об OLAP и хранилищах данных вы сможете прочесть в цикле статей, посвященных этому вопросу, публикацию которого мы планируем начать в ближайших номерах журнала.
Отметим, что многомерный анализ данных может быть осуществлен как в клиентском приложении, так и на сервере баз данных. Все производители ведущих серверных СУБД (IBM, Informix, Microsoft, Oracle, Sybase) производят серверные средства для такого анализа.
Клиентские OLAP-средства
Клиентские OLAP-средства представляют собой приложения, осуществляющие многомерный анализ данных, содержащихся в какой-либо СУБД, и вычисление агрегатных данных (сумм, средних величин, максимальных или минимальных значений) внутри своего адресного пространства. Если исходные данные содержатся в настольной СУБД, то вычисление агрегатных данных производится непосредственно самим OLAP-средством; если же источник исходных данных представляет собой серверную СУБД, то многие из клиентских OLAP-средств так или иначе используют возможности сервера баз данных для вычисления агрегатных данных (например, посылая на сервер SQL-запросы, содержащие оператор GROUP BY, — результат такого запроса содержит агрегатные данные, вычисленные на сервере).
Как правило, OLAP-функциональность реализована в продуктах, предназначенных для статистической обработки данных. Из наиболее распространенных продуктов такого класса следует назвать продукты компаний StatSoft и SPSS.
Многие средства разработки содержат библиотеки классов или компонентов, позволяющие создавать простейшие OLAP-средства (такие, например, как компоненты DecisionCube в Borland Delphi и Borland C++Builder). Помимо этого существуют библиотеки сторонних производителей, реализующие подобную функциональность и применяемые совместно со средствами разработки.
Отметим, что весьма неплохими средствами многомерного анализа обладает Excel 2000: с его помощью можно создавать и хранить в виде файла локальное многомерное хранилище агрегатных данных относительно небольшого объема и отображать двух- или трехмерные сечения полученного гиперкуба. Для этого достаточно вызвать мастер сводных таблиц с помощью пункта меню Data | PivotTable and PivotChart Report (Данные | Сводная таблица) и ответить на вопросы, задаваемые этим мастером.
К числу свободно распространяемых OLAP-средств относится Seagate Analysis компании Seagate Software.
Также следует сказать, что клиентские OLAP-средства применяются обычно при небольшом числе параметров, используемых для анализа (обычно их не рекомендуется иметь более шести), и небольшом разнообразии значений этих параметров, поскольку полученные агрегатные данные должны размещаться в адресном пространстве такого средства и при увеличении числа параметров объем занимаемой данными оперативной памяти увеличивается экспоненциально. Именно поэтому даже самые примитивные клиентские OLAP-средства обычно содержат инструменты предварительного подсчета объема оперативной памяти, который потребуется при создании и отображении многомерного куба.
Серверные OLAP-cредства
Работа серверных OLAP-средств организована подобно работе реляционных серверных СУБД: хранение агрегатных данных и поддержка содержащего их хранилища осуществляются отдельным приложением или в ходе процесса, называемого OLAP-сервером. Одни клиентские приложения могут обращаться с запросами к такому хранилищу и в ответ на них получать либо те или иные подмножества из хранимой совокупности агрегатных данных, либо значения, вычисляемые на их основе. Другие приложения могут создавать указанные хранилища или обновлять их в соответствии с изменившимися исходными данными.
Многие клиентские OLAP-средства позволяют обращаться к серверным OLAP-хранилищам, выступая в этом случае в роли клиентских приложений, выполняющих подобные запросы. Так, Microsoft Excel 2000 может обращаться к любому многомерному хранилищу данных (если для него имеется OLE DB-провайдер, удовлетворяющий спецификации OLE DB for OLAP), в частности к данным Microsoft SQL Server 7.0 OLAP Services и Microsoft SQL Server 2000 Analysis Services, и отображать подмножества данных, хранимых на этих OLAP-серверах (например, строить сечения многомерных кубов и отображать их в виде сводных таблиц и диаграмм). Подробности о том, как использовать эту функциональность в приложениях, можно найти в нашей статье «Создание OLAP-клиентов с помощью Excel и Microsoft PivotTable Services» (КомпьютерПресс № 12’2000).
Преимущества применения серверных OLAP-средств по сравнению с клиентскими OLAP-средствами сходны с преимуществами применения серверных СУБД по сравнению с настольными, так как создание, пересчет и хранение агрегатных данных происходят на сервере, а клиентское приложение получает лишь результаты запросов к ним; трафик, время выполнения запроса и потребляемая оперативная память в общем случае оказываются намного ниже, чем в случае использования клиентских OLAP-средств с теми же исходными данными. Поэтому при большом числе параметров, используемых для анализа, при большом разнообразии их значений и большом объеме исходных данных следует применять серверные OLAP-средства. Отметим также, что средства анализа и обработки данных масштаба предприятия, как правило, базируются именно на серверных OLAP-средствах.
Средства поиска закономерностей (Data Mining-средства)
Корпоративная база данных предприятия обычно содержит набор таблиц, хранящих записи о тех или иных фактах или объектах. Однако совокупность таких записей, накопленных за несколько лет, может служить источником дополнительной информации, которую нельзя получить на основе одной конкретной записи, а именно сведений о закономерностях, тенденциях или взаимозависимости между какими-либо данными. Подобного рода информация обычно используется при прогнозировании и стратегическом планировании, и ценность ее для предприятия очень высока. Видимо, поэтому процесс ее поиска и получил название Data Mining (mining по-английски означает добычу полезных ископаемых, а поиск закономерностей в огромном наборе фактических данных действительно близок к этому). Другими словами, термин Data Mining реально обозначает не столько технологию, сколько сам процесс поиска корреляций, тенденций, взаимосвязей и закономерностей посредством различных математических и статистических алгоритмов — кластеризации, создания субвыборок, регрессионного и корреляционного анализа. Цель этого поиска — представить данные в таком виде, чтобы стало возможным понять поведение бизнес-процессов, а также построить модель, с помощью которой можно прогнозировать процессы, играющие роль при планировании бизнеса (например, динамику спроса на те или иные товары или услуги).
Современные средства поиска закономерностей, корреляций и тенденций могут осуществлять его как в реляционных базах данных, так и в OLAP-кубах.
Отметим, что Data Mining-средства обычно относятся к дорогостоящим программным средствам — до нескольких десятков тысяч долларов. Однако некоторые средства анализа и обработки данных масштаба предприятия содержат инструменты для поиска закономерностей.
BI-средства масштаба предприятия и средства разработки BI-приложений
Как было сказано выше, к современным средствам Business Intelligence относятся не только генераторы отчетов и OLAP-средства, но и средства разработки BI-приложений (BI Platforms), а также средства анализа и обработки данных масштаба предприятия, позволяющие осуществлять комплекс действий, связанных с анализом данных и созданием отчетов (Enterprise BI Suites). Последние, как правило, содержат в своем составе и средства построения отчетов, и OLAP-средства, а нередко и Data Mining-средства.
По данным аналитиков Gartner Group, лидерами на рынке средств анализа и обработки данных масштаба предприятия являются компании Business Objects, Cognos, MicroStrategy, Information Builders; широко распространены также средства анализа и обработки данных масштаба предприятия Oracle, Brio Technology, Computer Associates, Seagate Software. Что касается средств разработки BI-решений, то лидерами в этой области, по тем же данным, являются Hyperion Solutions, Microsoft и Oracle; популярностью пользуются и продукты компаний Information Builders и SAS Institute. (Во врезках, приведенных в данной статье, вы сможете найти краткие сведения о продуктах и решениях упомянутых компаний.)
Заключение
В настоящей статье мы рассмотрели средства Business Intelligence, а именно: генераторы отчетов; средства аналитической обработки данных; средства разработки BI-приложений; средства анализа и обработки данных масштаба предприятия. Мы рассказали о различных способах создания отчетов и о применяемых для этого средствах; выяснили, что представляют собой клиентские и серверные OLAP-средства, что такое Data Mining и зачем нужны Data Mining-средства. Мы также кратко рассмотрели наиболее популярные продукты, относящиеся к классу средств Business Intelligence.
Итак, мы закончили начатый ровно год назад цикл «Введение в базы данных». Естественно, тема использования СУБД этим не исчерпывается. Поэтому статьи, посвященные базам данных, разработке приложений, их применяющих, а также анализу данных, будут и впредь регулярно публиковаться в нашем журнале. Однако особое внимание нам хотелось бы уделить аналитической обработке данных: несмотря на востребованность и возрастающую популярность OLAP-технологий, отечественные разработчики пока не избалованы литературой, посвященной этой проблеме. Вследствие этого ей и будет посвящен новый цикл статей, который в ближайшее время мы начнем публиковать в рубрике «Средства разработки».
Ознакомительные версии некоторых из рассмотренных в данной статье продуктов вы сможете найти на нашем CD-ROM.
КомпьютерПресс 3'2001