Использование MS SQL Server Analysis Services 2008 для построения хранилищ данных

Планирование и архитектура SSAS

Показывать лекцию целиком

Логическая архитектура

Службы Microsoft SQL Server Analysis Services используют как серверные, так и клиентские компоненты для предоставления приложениям бизнес-аналитики функций оперативной аналитической обработки (OLAP) и интеллектуального анализа данных.

Серверный компонент служб SSAS реализован в виде службы Microsoft Windows. Службы SQL Server Analysis Services поддерживают работу нескольких экземпляров на одном компьютере, при этом каждый экземпляр служб SSAS реализован как отдельный экземпляр службы Windows.

Клиенты обмениваются данными со службами SSAS с помощью общедоступного стандарта XML для аналитики ( XMLA ), который представляет собой протокол на базе SOAP для выполнения команд и получения ответов и предоставляется в виде веб-службы. Поэтому каждый экземпляр SSAS является Web-сервисом.

Клиентские модели объектов также предоставляются через , или через собственный поставщик http://www.oledbdirect.com.

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

Экземпляр служб SSAS может содержать несколько баз данных, а в базе данных могут одновременно присутствовать объекты OLAP и объекты интеллектуального анализа данных. Приложения подключаются к указанному экземпляру служб SSAS и к указанной базе данных. На серверном компьютере может эксплуатироваться несколько экземпляров служб SSAS. Экземпляры служб SSAS именуются как "<ИмяСервера>\<ИмяЭкземпляра>". На рисунок 4.1 показаны все упомянутые связи между объектами служб SSAS.

(рис 4.1) Связи между объектами служб SSAS

Основные классы представляют собой минимальный набор объектов, требуемый для формирования куба. Этот минимальный набор объектов включает измерение, группу мер и секцию. Определение статистической обработки является необязательным.

Измерение описывает элемент данных, по которому производится анализ. Например, распространенным элементом анализа является время. Измерения создаются на основе атрибутов и иерархий.

Атрибут - это полная коллекция элементов одного типа. Например, все дни недели будут атрибутом измерения "Время".

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

Кубы создаются на основе измерений и групп мер. Начиная с Analysis Services 2005, поддерживается множество фактов в одном кубе. Меры из таблицы фактов группируются в группу мер. Куб может иметь несколько групп мер.

Измерения в коллекции измерений куба принадлежат к коллекции измерений базы данных.

Группы мер - это коллекции мер, которые имеют одно и то же представление источника данных и одно и то же подмножество измерений в кубе. Группа мер имеет одну или несколько секций, предназначенных для управления физическими данными. Группа мер может иметь применяемую по умолчанию статистическую схему.

Статистическая схема по умолчанию может использоваться во всех секциях в группе мер; кроме того, каждая секция может иметь собственную статистическую схему.

Каждый экземпляр служб SSAS рассматривается как отдельный объект сервера. Каждый отдельный экземпляр подключается к объекту Server с помощью отдельного соединения. Каждый объект сервера содержит один или несколько источников данных, представление источника данных и объекты базы данных, а также сборки и роли безопасности.

Каждый объект базы данных содержит несколько объектов измерения. Каждый объект измерения содержит один или несколько атрибутов, которые организованы в виде иерархий.

Каждый объект базы данных содержит один или несколько объектов куба. Куб задается его мерами и измерениями. Меры и измерения куба выводятся из таблиц и представлений в представлении источника данных, на котором основан куб или который создан из определений мер и измерений.

Пример

Куб "Импорт" (рисунок 4.2) содержит две меры ("Пакеты" и "Последняя дата") и три связанных измерения ("Маршрут", "Источник" и "Время").

(рис 4.2) Куб "Импорт"

По осям куба отложены элементы измерений. Примеры элементов - "Наземный" (элемент измерения "Маршрут"), "Африка" (элемент измерения "Источник") и "1-й квартал" (элемент измерения "Время").

Значение в ячейках куба представляют две меры - "Пакеты" и "Последняя дата". Мера "Пакеты" представляет число импортированных посылок; для статистической обработки фактов используется функция Sum. Мера "Последняя дата" представляет собой дату получения; для статистической обработки используется функция Max.

Измерение "Маршрут" представляет пути, которыми импортируемый товар достигает своего назначения. В число элементов этого измерения входят "наземный", "не наземный", "воздушный", "морской", "дорожный" и "железнодорожный". Измерение "Источник" представляет место производства импортируемого товара, например Азию или Африку. Измерение "Время" представляет кварталы и полугодия.

Пользователи куба могут определять значения его мер для каждого элемента в каждом измерении независимо от уровня элемента в измерении, поскольку службы SSAS вычисляют значения верхних уровней по мере необходимости.

Например, значения меры на рисунок 4.2 могут быть вычислены в соответствии с обычной календарной иерархией с использованием иерархии "Календарное время" в измерении "Время", как показано на рисунок 4.3.

(рис 4.3) Значения мер в соответствии с иерархией "Календарное время"

Меры, атрибуты и иерархии в примере куба выводятся из следующих столбцов таблиц фактов и измерений куба (Таблица 4.1).

Соответствие элементов куба таблицам фактов и измерений
Мера или атрибут (уровень) Элементы Исходная таблица Исходный столбец Образец значения столбца
Мера "Посылки" Неприменимо ImportsFactTable Посылки 12
Мера "Последняя дата" Неприменимо ImportsFactTable Последняя дата 03-май-99
Уровень категории "Маршрут" в измерении "Маршрут" не наземный, наземный RouteDimensionTable Route_Category Не наземный
Атрибут "Маршрут" в измерении "Маршрут" воздушный, морской, дорожный, железнодорожный RouteDimensionTable Маршрут Морской
Атрибут "Полушарие" в измерении "Источник" Восточное полушарие, западное полушарие SourceDimensionTable Полушарие Восточное полушарие
Атрибут "Континент" в измерении "Источник" Африка, Азия, Австралия, Европа, Северная Америка, Южная Америка SourceDimensionTable Континент Европа
Атрибут "Полугодие" в измерении "Время" Первое полугодие, второе полугодие TimeDimensionTable Полугодие Второе полугодие
Атрибут "Квартал" в измерении "Время" Первый квартал, второй квартал, третий квартал, четвертый квартал TimeDimensionTable Квартал Третий квартал

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

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

Физическая архитектура

С точки зрения физической архитектуры службы SSAS состоят из серверного и клиентского компонентов.

  • Серверный компонент служб SSAS реализован в виде службы Microsoft Windows. Службы SSAS поддерживают работу нескольких экземпляров на одном компьютере, при этом каждый экземпляр служб SSAS реализован как отдельный экземпляр службы Windows.
  • Клиенты обмениваются данными со службами SSAS с помощью общедоступного стандарта , или через собственный поставщик OLE DB.
  • Команды запросов могут быть выражены на следующих языках:

  • Расширения интеллектуального анализа данных ( MDX ) - стандартный язык запросов, ориентированный на интеллектуальный анализ данных.
  • Язык сценариев служб Analysis Services (ASSL) также может использоваться для управления объектами базы данных служб SSAS.
  • Экземпляр служб SSAS запускается, как изолированная служба, взаимодействие с этой службой происходит через XMLA с использованием протокола HTTP или TCP. Объекты AMO - это прослойка между приложением пользователя и экземпляром служб SSAS. Они предоставляют доступ к административным объектам служб SSAS. Объект AMO - это библиотека класса, которая принимает команды от клиентского приложения и преобразует их в XMLA -сообщения для экземпляра служб SSAS. Объекты AMO представляют объекты экземпляра служб SSAS, как классы для приложения конечного пользователя, с элементами-методами, запускающими команды и элементами-свойствами, хранящими данные объектов служб SSAS.

    На рисунок 4.4 отображена архитектура компонентов служб SSAS, включая все главные элементы, запущенные на экземпляре служб SSAS, и все пользовательские компоненты, взаимодействующие с этим экземпляром. Как показано на рисунке, единственным путем доступа к экземпляру является прослушиватель XML для аналитики или использование протокола HTTP или TCP.

    (рис 4.4) Архитектура компонентов служб SSAS

    Архитектура программирования SSAS

    Прикладная модель определяет формат данных, и в котором они передаются аналитическим приложениям. Основным пользователем прикладной модели данных является клиентское приложение, которое представляет модель пользователю. Прикладная модель создается с помощью Языка Многомерных Выражений (Multidimensional Expressions, MDX), который служит как для представления запросов к многомерной базе данных, так и для описания модели формирования данных внутри нее при помощи MDX -сценариев (MDX Scripts).

    Объекты AMO

    Объекты AMO являются полной коллекцией классов управления для служб SSAS, доступных для использования программным способом в управляемой среде, через пространство имен Microsoft.AnalysisServices. Эти классы включены в файл AnalysisServices.dll, который обычно находится в каталоге установки SQL Server, то есть в папке \100\SDK\Assemblies\. Для работы с классами AMO следует указать в проекте Visual Studio ссылку на эту сборку.

    Объекты AMO позволяют создавать, изменять и удалять такие объекты, как кубы, измерения, структуры интеллектуального анализа, а также базы данных служб SSAS. Приложение, работающее на платформе .NET Framework, может выполнять действия со всеми этими объектами. Кроме этого, существует также возможность обновления и обработки данных, хранящихся в базах данных служб SSAS.

    Объекты AMO не позволяют выполнять запросы к данным. Для запроса данных предназначены объекты, описанные в разделе http://www.ADOMD.NET.

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

    На рисунок 4.5 приведена иерархия классов AMO высокого уровня, содержащая основные классы.

    (рис 4.5) Иерархия классов AMO высокого уровня

    Объекты AMO особенно полезны для автоматизации часто выполняемых задач (например, для создания новых секций в группе мер при появлении новых данных в таблице фактов или для повторного обучения модели интеллектуального анализа при появлении новых данных). Обычно эти задачи, которые создают новые объекты, выполняются ежемесячно, еженедельно или ежеквартально, а приложение может легко именовать эти новые объекты на основе новых данных.

    Администраторы служб SSAS могут использовать объекты AMO, чтобы автоматизировать обработку баз данных служб SSAS. Проектирование и развертывание баз данных служб SSAS следует производить в среде BI Dev Studio.

    Разработчикам объекты AMO дают возможность создавать интерфейсы администрирования для определенных наборов пользователей. Эти интерфейсы позволяют ограничивать доступ к объектам служб SSAS и разрешать пользователям выполнять только определенные задачи. На основе объектов AMO можно, например, создать приложение для создания резервных копий, которое позволит пользователям видеть все объекты баз данных, выбрать любую из баз данных и создать ее резервную копию на любом устройстве из указанного набора.

    Разработчики могут также внедрять в приложения логику служб SSAS. Это возможно благодаря созданию кубов, измерений, структур и моделей интеллектуального анализа на основе пользовательского ввода и других факторов.

    Проектирование, развертывание и обслуживание большинства наиболее часто выполняемых задач лучше всего выполняется при помощи приложений на основе служб Integration Services, написанных на любом языке. А для тех повторяющихся задач, автоматизировать которые при помощи служб Integration Services невозможно, можно использовать объекты AMO. Объекты AMO также полезны при разработке специализированных приложений для бизнес-аналитики на основе служб SSAS.

    Язык ASSL

    Клиентские приложения служб SSAS, в том числе SQL Server Management Studio и BI Dev Studio, поддерживают связь со службами SSAS с помощью сообщений SOAP. Язык сценариев служб Analysis Services (язык ASSL), который является разновидностью XML, используемой для этих сообщений, состоит из двух частей:

  • языка описания данных DDL, или язык определения объектов, который определяет и описывает экземпляр служб SSAS, а также базы данных и объекты баз данных, находящихся в этом экземпляре;
  • командного языка, который отправляет команды-действия, например Create, Alter или Process, экземпляру служб SSAS.
  • В службах SSAS язык определения данных (Data Definition Language, DDL) языка ASSL определяет структуру объектов служб SSAS (например, кубов, измерений и моделей интеллектуального анализа данных), а также привязку объектов служб SSAS к источникам данных. DDL также сохраняет определение объектов служб SSAS. Приложения служб SSAS используют DDL для создания, изменения, развертывания и описания объектов SSAS.

    Разработчик проектирует набор кубов при помощи средств проектирования среды BI DevStudio и сохраняет это определение как часть проекта. Разработчик не ограничен использованием только средств проектирования, он также может открывать непосредственно файлы определений кубов для изменения XML.

    Администратор БД использует среду SQL Server Management Studio для непосредственного редактирования XML в качестве средства создания и изменения объектов служб SSAS так же, как он использует SQL Server DDL, чтобы создавать и изменять объекты Microsoft SQL Server.

    Поставщик данных ADOMD.NET

    Как и в случае с поставщиками данных платформы Microsoft .NET Framework, такими как http://www.ADO.NET,http://www. ADOMD.NET выступает в качестве моста между приложением и источником данных. Однакоhttp://www. ADOMD.NET отличается от остальных поставщиков данных платформы .NET Framework тем, что он работает с аналитическими данными. Чтобы работать с аналитическими данными, компонент http://www.ADOMD.NET обладает функциями, которые значительно отличаются от функций других поставщиков данных платформы .NET Framework. http://www.ADOMD.NET позволяет получать не только данные, но и метаданные, а также изменять структуру источника аналитических данных.

    Получив метаданные при помощи наборов строк схемы или модели объекта, приложения могут узнать больше о тех данных, которые можно извлечь из источника данных. Получить можно такие сведения, как типы доступных ключевых индикаторов производительности, измерения в кубе и параметры, которые требуются модели интеллектуального анализа данных. Наибольшее значение метаданные имеют для динамических приложений, которым для определения типа, глубины и области действия получаемых данных требуется ввод пользователя. Среди таких приложений Query Analyzer, Microsoft Excel и другие средства запросов. Метаданные менее значимы для статических приложений, выполняющих набор стандартных действий.

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

    Компонент http://www.ADOMD.NET также можно использовать, чтобы фактически изменять структуру хранилища аналитических данных. И хотя обычно это делается с помощью модели объектов AMO, компонент http://www.ADOMD.NET можно использовать для отправки команд на ASSL, чтобы создавать, изменять или удалять объекты на сервере.

    Вернуться к учебному плану