|
||||||||
|
|
Введение в OLAP: часть 3. Архитектура Microsoft Analysis ServicesАлексей Федоров,
В предыдущих статьях данного цикла (КомпьютерПресс © 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 DSODecision 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 ManagerAnalysis 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 могут также обратиться к нашим статьям Отметим, что помимо Microsoft Office существуют и другие коммерческие
продукты, предназначенные для обращения к OLAP-данным и создания OLAP-кубов.
Кроме того, как мы уже говорили, можно создавать свои собственные приложения,
использующие PivotTable Service, OLE DB for OLAP и ADO MD (рис. 5).
Рис. 5. Приложение, использующее PivotTable Service и OLE DB for
OLAP
В данной статье мы рассмотрели архитектуру аналитических служб Microsoft. Мы
узнали, что:
Далее, рассмотрев различные технологии доступа к OLAP-данным, мы узнали
следующее:
И наконец, мы кратко рассмотрели, какие клиентские утилиты можно использовать
для доступа к аналитическим службам, а именно:
Источником данных для кубов 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.
c 2001
Interface Ltd | ||||||||||
За содержание страницы отвечает Гончарова М.Н. © Кафедра СПиКБ, 2002-2017 |