Введение в OLAP

Часть 3. Архитектура Microsoft Analysis Services

Алексей Федоров, Наталия Елманова

Что представляют собой аналитические службы

Что хранится в многомерной базе данных

Технологии доступа к аналитическим службам из клиентских приложений

   SQL DSO

   PivotTable Service, OLE DB for OLAP и ADO MD

Клиенты аналитических служб

   Analysis Manager

   Приложения Microsoft Office

Заключение

 

Службы преобразования данных

Репозитарий аналитических служб

 

В предыдущих статьях данного цикла (КомпьютерПресс № 4, 5’2001) мы рассказали об основах OLAP (On-Line Analytical Processing) — технологии многомерного анализа данных, а также рассмотрели типичную структуру хранилищ данных и некоторые технические аспекты многомерного хранения данных. Настоящая статья посвящена типичной архитектуре OLAP-служб, рассматриваемой на примере Microsoft Analysis Services — OLAP-сервера фирмы Microsoft, входящего в комплект поставки Microsoft SQL Server 2000 Enterprise Edition и на сегодняшний день признанного аналитиками Gartner Group одним из наиболее популярных продуктов этого класса.

Что представляют собой аналитические службы

Как мы уже знаем, конечной целью использования хранилищ данных и OLAP являются анализ данных и представление результатов этого анализа в удобном для восприятия и принятия решений виде. Непосредственное обращение клиентского приложения, отвечающего за представление результатов анализа данных, к хранилищу данных в принципе возможно. Однако в этом случае в нем должны быть реализованы средства такого анализа, то есть по существу оно должно быть клиентским OLAP-средством. При всей простоте такого подхода к реализации OLAP он не лишен недостатков, связанных с ограничениями, налагаемыми на число измерений и количество членов в них (подробное рассмотрение этого вопроса можно найти в предыдущей статье данного цикла). Как мы знаем, у серверных OLAP-средств таких недостатков нет. Поэтому более прогрессивным представляется подход, основанный на применении серверных OLAP-средств в качестве промежуточного звена между хранилищем данных в виде реляционной СУБД и клиентским приложением. В этом случае OLAP-сервер должен превращать данные из реляционного хранилища в форму, более удобную для создания аналитических отчетов, — в OLAP-кубы.

Как уже было сказано выше, в качестве примера серверного OLAP-средства мы рассмотрим аналитические службы Microsoft (Microsoft Analysis Services), входящие в состав Microsoft SQL Server 2000 Enterprise Edition.

Основным компонентом аналитических служб является Analysis Server — сервис операционной системы Windows NT/2000. Этот сервер предназначен для создания OLAP-кубов на основе реляционных хранилищ данных, а также для предоставления доступа к ним из клиентских приложений. Ниже мы рассмотрим, какими именно объектами манипулирует этот сервер и с помощью каких механизмов это происходит.

В начало В начало

Что хранится в многомерной базе данных

Теоретически OLAP-куб, созданный с помощью аналитических служб Microsoft, может содержать все данные из таблицы фактов плюс агрегатные значения для тех групп записей из этой таблицы, которые соответствуют верхним уровням иерархии измерений. При необходимости можно производить динамическое обновление куба, если в таблицу фактов были добавлены новые записи, а также выбрать, будут ли данные с нижних уровней иерархии храниться в самом кубе, что соответствует способу хранения данных Multidimensional OLAP, или они будут считываться из таблицы фактов хранилища данных, что соответствует способам хранения данных Relational OLAP и Hybrid OLAP (способы хранения данных мы рассматривали в предыдущей статье данного цикла). С точки зрения пользователя различий между этими способами хранения нет, не считая разницы в производительности обращающихся к этим кубам приложений.

Аналитические службы сохраняют агрегатные данные только для простейших агрегатных функций (сумм, числа записей, максимальных и минимальных значений). Однако в случае необходимости можно создавать так называемые вычисляемые члены (calculated members) для получения других типов агрегатных значений (средних, средневзвешенных, смещенных и несмещенных дисперсий и т.д.). При этом, помимо применения встроенных средств создания агрегатных данных, Analysis Services позволяет использовать для вычисления агрегатных данных функции VBA или Excel, а также создавать собственные.

Так, для создания нескольких кубов, имеющих одинаковые измерения, можно сгруппировать их в одну многомерную базу данных, а сами эти измерения поместить в библиотеку (library), сделав их коллективными, то есть общедоступными для всех кубов, содержащихся в базе данных (shared dimensions). Можно также создавать измерения, принадлежащие только одному кубу (private dimensions).

И наконец, аналитические службы Microsoft позволяют создавать так называемые виртуальные кубы (virtual cubes), которые в определенной степени являются аналогами представлений (view) реляционных СУБД. Виртуальные кубы не содержат данных, но позволяют представить в виде единого куба данные из нескольких кубов, имеющих хотя бы одно общее коллективное измерение.

В начало В начало

Технологии доступа к аналитическим службам из клиентских приложений

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

В начало В начало

SQL DSO

Decision Support Objects (DSO) — это набор библиотек, содержащих COM-объекты, позволяющие создавать и модифицировать многомерные базы данных и содержащиеся в них объекты (кубы, коллективные измерения и т.д.). Отметим, что Analysis Manager — приложение, использующее SQL DSO, — входит в состав аналитических служб.

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

Отметим, что SQL DSO можно использовать только для доступа к аналитическим службам Microsoft. Ни к каким другим OLAP-серверам с помощью этих библиотек обратиться нельзя.

Более подробно о применении SQL DSO мы расскажем в отдельной статье.

В начало В начало

PivotTable Service, OLE DB for OLAP и ADO MD

Приложения, предназначенные для чтения OLAP-данных, при взаимодействии с аналитическими службами обязательно используют PivotTable Service — библиотеки, загружаемые в адресное пространство клиентского приложения. Эти библиотеки автоматически устанавливаются вместе с аналитическими службами (независимо от того, какая именно их часть установлена — клиентская или серверная), а также вместе с Microsoft Office 2000. В состав Microsoft SQL Server 2000 входит также инсталляционное приложение для установки PivotTable Service на компьютер, на котором не установлены ни аналитические службы, ни Microsoft Office.

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

Для взаимодействия с PivotTable Service клиентское приложение может использовать OLE DB for OLAP — расширение универсального механизма доступа к данным OLE DB, позволяющее обращаться к многомерным данным, а также ADO MD — библиотеки, представляющие собой надстройку над OLE DB for OLAP и являющиеся COM-серверами для доступа к многомерным данным, удобными для применения в клиентских приложениях.

Отметим, что спецификация OLE DB for OLAP является открытой. Это означает, что можно создавать и другие OLAP-серверы, поддерживающие OLE DB for OLAP (либо разрабатывать OLE DB-провайдеры к уже имеющимся OLAP-средствам), а также создавать клиентские приложения, обращающиеся к любым таким источникам данных с помощью PivotTable Service, OLE DB for OLAP и ADO MD.

Пользователи Delphi могут найти примеры применения OLE DB for OLAP и ADO MD в нашей статье «Borland Delphi и расширения ADO» (КомпьютерПресс № 10’2000).

В начало В начало

Клиенты аналитических служб

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

В начало В начало

Analysis Manager

Analysis Manager представляет собой утилиту, входящую в состав аналитических служб и предназначенную главным образом для администраторов баз данных OLAP (рис. 2).

В составе Analysis Manager имеется простейшее средство просмотра многомерных данных, представляющее собой элемент управления ActiveX, использующий для доступа к данным OLE DB for OLAP.

Analysis Manager использует библиотеки SQL DSO для создания и модификации объектов многомерной базы данных и OLE DB для доступа к исходным реляционным хранилищам данных. Что касается доступа к самим многомерным данным, то, повторимся, Analysis Manager использует для этой цели OLE DB for OLAP.

В начало В начало

Приложения Microsoft Office

Из других клиентских приложений, не входящих в состав аналитических служб, но часто используемых для просмотра OLAP-кубов, следует назвать приложения Microsoft Office, в частности Microsoft Excel. С помощью Excel можно обращаться к серверным OLAP-кубам, получая их двух- и трехмерные сечения на листах рабочих книг Excel в виде сводных таблиц, а также создавать локальные OLAP-кубы в виде файлов на основе реляционных данных, доступных с помощью OLE DB (рис. 3).

Кроме того, в состав Microsoft Office Web Components входит элемент управления ActiveX PivotTable List, позволяющий реализовать сходную функциональность как в обычном Windows-приложении, так и на HTML-странице, предназначенной для применения внутри корпоративной сети (рис. 4).

Подробнее о применении Microsoft Office в качестве клиентских приложений для аналитических служб мы расскажем в одной из следующих статей данного цикла.

Пользователи Delphi могут также обратиться к нашим статьям «Delphi, Excel и OLAP» и «Использование Web-компонентов Microsoft Office. Часть 2» (КомпьютерПресс № 12’2000), в которых рассматриваются примеры создания клиентских приложений с использованием Excel и Microsoft Office Web Components.

Отметим, что помимо Microsoft Office существуют и другие коммерческие продукты, предназначенные для обращения к OLAP-данным и создания OLAP-кубов. Кроме того, как мы уже говорили, можно создавать свои собственные приложения, использующие PivotTable Service, OLE DB for OLAP и ADO MD (рис. 5).

В начало В начало

Заключение

В данной статье мы рассмотрели архитектуру аналитических служб Microsoft. Мы узнали, что:

  • основным компонентом аналитических служб является Analysis Server, представляющий собой сервис операционной системы Windows NT/2000 и предназначенный для создания OLAP-кубов и предоставления доступа к ним из клиентских приложений;
  • аналитические службы Microsoft поддерживают все известные технологии многомерного хранения данных — Multidimensional OLAP, Relational OLAP и Hybrid OLAP;
  • аналитические службы поддерживают получение вычисляемых агрегатных данных, создание коллективных измерений и виртуальных кубов.

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

  • для создания административных приложений следует применять Decision Support Objects (SQL DSO) — набор библиотек, в которых содержатся COM-объекты, позволяющие создавать и модифицировать многомерные базы данных и содержащиеся в них объекты, такие как кубы, коллективные измерения и т.д. SQL DSO можно использовать только для доступа к аналитическим службам Microsoft;
  • приложения, предназначенные только для чтения OLAP-данных, для взаимодействия с аналитическими службами обязательно используют PivotTable Service — библиотеки, загружаемые в адресное пространство клиентского приложения и предназначенные для просмотра серверных OLAP-кубов, а также для создания, модификации и чтения локальных OLAP-кубов, созданных в клиентском приложении;
  • для взаимодействия с PivotTable Service клиентское приложение может использовать OLE DB for OLAP — расширение универсального механизма доступа к данным OLE DB, позволяющее обращаться к многомерным данным, а также ADO MD — COM-серверы для доступа к многомерным данным, представляющие собой надстройку над OLE DB for OLAP и удобные для использования в клиентских приложениях. Спецификация OLE DB for OLAP является открытой.

И наконец, мы кратко рассмотрели, какие клиентские утилиты можно использовать для доступа к аналитическим службам, а именно:

  • Analysis Manager, входящий в состав аналитических служб, предназначен для создания и модификации объектов многомерной базы данных и использует для этой цели библиотеки SQL DSO. С его помощью можно осуществлять и просмотр многомерных данных, для чего используется OLE DB for OLAP;
  • нередко для просмотра OLAP-кубов применяются приложения Microsoft Office, в частности Microsoft Excel, а также ActiveX-компонент PivotTable List, входящий в состав Microsoft Office Web Components.

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

КомпьютерПресс 6'2001