OLAP.ru   Rambler's Top100
Вы находитесь на страницах старой версии сайта. Перейдите на новую версию OLAP.ru
  
Поиск по сайту
Новости
Основы OLAP
Продукты
Business Objects/ Crystal Decisions
Каталог
OLAP в жизни
Тенденции
Download
Яndex
 
 
 
TopList
 

Введение в OLAP: часть 3. Архитектура Microsoft Analysis Services


Алексей Федоров,
Наталия Елманова, преподаватель УКЦ "Interface Ltd",
КомпьютерПресс 6'2001

Что представляют собой аналитические службы
Что хранится в многомерной базе данных
Технологии доступа к аналитическим службам из клиентских приложений
   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).

Рис. 1. Приложение, использующее SQL DSO

Отметим, что 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".

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

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

Analysis Manager

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

Рис. 2. Analysis Manager

В составе 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).

Рис. 3. Применение Excel в качестве OLAP-клиента

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

Рис. 4. Применение элемента управления PivotTable List в качестве OLAP-клиента

Подробнее о применении 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).

Рис. 5. Приложение, использующее PivotTable Service и OLE DB for OLAP

Заключение

В данной статье мы рассмотрели архитектуру аналитических служб 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, как правило, является реляционное хранилище данных. Сами по себе аналитические службы не содержат средств для пополнения реляционного хранилища данными из оперативных баз данных, с которыми работают пользователи. Однако такие средства содержат многие современные серверные СУБД.

В частности, в Microsoft SQL Server средства для переноса данных из одной реляционной СУБД в другую с возможным их преобразованием, которые можно применять и для пополнения хранилищ данных, называются службами преобразования данных (Data Transformation Services, DTS). Службы преобразования данных могут быть использованы не только с Microsoft SQL Server, но и с любыми другими источниками данных, доступными через универсальный механизм доступа к данным OLE DB (более подробное описание OLE DB и ADO вы найдете в книге «Базы данных для всех», которая будет выпущена издательством «КомпьютерПресс» этим летом).

Отметим, что DTS позволяют использовать дополнительные модули расширения (plug-ins) и в состав аналитических служб входит одно из таких расширений, позволяющее обновлять OLAP-кубы.

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

При создании описаний OLAP-кубов с помощью библиотек SQL DSO эти описания, или метаданные, сохраняются в репозитарии. Сами же данные сохраняются в каталоге, указанном при установке Analysis Services (впоследствии его местоположение можно изменить).

По умолчанию репозитарий аналитических служб представляет собой базу данных Access msmdrep.mdb, расположенную в каталоге Microsoft Analysis Services\Bin, который при необходимости можно перенести и в базу данных Microsoft SQL Server. Текущая версия аналитических служб не поддерживает сохранение репозитария в базах данных других СУБД, в то время как само исходное реляционное хранилище данных может содержаться в любой СУБД, доступной с помощью универсальных механизмов доступа к данным OLE DB и ODBC.

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

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

 Обсудить на форуме   Написать вебмастеру 

© 2001 Interface Ltd