Расширения персонализации аналитических служб Analysis Services

Расширения персонализации служб SQL Server Analysis Services являются основой идеи реализации подключаемой архитектуры. В архитектуре подключаемого модуля можно динамически разрабатывать новые объекты куба и функциональные возможности и легко обмениваться ими с другими разработчиками. Таким образом, расширения персонализации служб Analysis Services предоставляют функциональные возможности, которые позволяют достичь следующих возможностей:

  • Динамическое проектирование и развертывание Сразу после разработки и развертывания расширений персонализации служб Analysis Services пользователи имеют доступ к объектам и функциям в начале следующего сеанса пользователя.

  • Независимость интерфейса Независимо от интерфейса, используемого для создания расширений персонализации служб Analysis Services, пользователи могут использовать любой интерфейс для доступа к объектам и функциям.

  • Контекст сеанса Расширения персонализации служб Analysis Services не являются постоянными объектами в существующей инфраструктуре и не требуют повторной обработки куба. Они становятся доступными и создаются для пользователя в то время, когда пользователь подключается к базе данных и остается доступным в течение этого сеанса пользователя.

  • Быстрое распределение Совместное использование расширений персонализации служб Analysis Services с другими разработчиками программного обеспечения без необходимости искать подробные спецификации о том, где или как найти эту расширенную функциональность.

Расширения персонализации служб Analysis Services используют многое. Например, у вашей компании есть продажи, которые включают разные валюты. Вы создаете вычисляемый элемент, который возвращает консолидированные продажи в локальной валюте пользователя, который обращается к кубу. Этот элемент создается как расширение персонализации. Затем вы используете этот вычисляемый элемент группе пользователей. После общего доступа эти пользователи получают немедленный доступ к вычисляемого элемента сразу после подключения к серверу. Они имеют доступ, даже если они не используют тот же интерфейс, что и тот, который использовался для создания вычисляемого элемента.

Расширения персонализации служб Analysis Services — это простое и элегантное изменение существующей архитектуры управляемой сборки и предоставляется во всей объектной модели Microsoft.AnalysisServices.AdomdServer , синтаксисе многомерных выражений и наборах строк схемы.

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

Архитектура расширений персонализации служб Analysis Services основана на архитектуре управляемой сборки и следующих четырех основных элементах:

Настраиваемый атрибут [PlugInAttribute]
При запуске службы службы Analysis Services загружает необходимые сборки и определяет, какие классы имеют настраиваемый атрибут Microsoft.AnalysisServices.AdomdServer.PlugInAttribute .

Замечание

Платформа .NET Framework определяет пользовательские атрибуты в качестве способа описания кода и влияния на поведение во время выполнения. Дополнительные сведения см. в разделе "Обзор атрибутов" в руководстве разработчика .NET Framework по MSDN.

Для всех классов с пользовательским атрибутом Microsoft.AnalysisServices.AdomdServer.PlugInAttribute службы Analysis Services вызывают конструкторы по умолчанию. При вызове всех конструкторов при запуске предоставляется общее расположение для создания новых объектов и независимо от любого действия пользователя.

Помимо создания небольшого кэша сведений о создании расширений персонализации и управлении ими, конструктор классов обычно подписывается на события Microsoft.AnalysisServices.AdomdServer.Server.SessionOpened и Microsoft.AnalysisServices.AdomdServer.Server.SessionClosing . Не удалось подписаться на эти события, класс может быть неправильно помечен для очистки сборщиком мусора среды CLR.

Контекст сеанса
Для тех объектов, которые основаны на расширениях персонализации, службы Analysis Services создают среду выполнения во время сеанса клиента и динамически создают большинство этих объектов в этой среде. Как и любая другая сборка СРЕДЫ CLR, эта среда выполнения также имеет доступ к другим функциям и хранимым процедурам. После завершения сеанса пользователя службы Analysis Services удаляют динамически созданные объекты и закрывают среду выполнения.

События
Создание объекта активируется событиями On-Cube-OpenedCubeOpened сеанса и On-Cube-ClosingCubeClosing.

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

События сеанса связаны с серверным объектом. Когда клиент входит на сервер, службы Analysis Services создают сеанс и активируют событие Microsoft.AnalysisServices.AdomdServer.Server.SessionOpened . Когда клиент завершает сеанс на сервере, службы Analysis Services активируют событие Microsoft.AnalysisServices.AdomdServer.Server.SessionClosing .

События куба связаны с объектом подключения. Подключение к кубу активирует событие Microsoft.AnalysisServices.AdomdServer.AdomdConnection.CubeOpened . Закрытие подключения к кубу путем закрытия куба или изменения в другой куб активирует событие Microsoft.AnalysisServices.AdomdServer.AdomdConnection.CubeClosing .

Возможность трассировки и обработка ошибок
Все действия можно отслеживать с помощью SQL Server Profiler. Необработанные ошибки передаются в журнал событий Windows.

Все разработки и управления объектами не зависят от этой архитектуры и являются единственной ответственностью разработчиков объектов.

Основы инфраструктуры

Расширения персонализации служб Analysis Services основаны на существующих компонентах. Ниже приведена сводка по усовершенствованиям и улучшениям, которые предоставляют функциональные возможности расширений персонализации.

Сборки

Настраиваемый атрибут Microsoft.AnalysisServices.AdomdServer.PlugInAttribute можно добавить в пользовательские сборки, чтобы определить классы расширений персонализации служб Analysis Services.

Изменения в объектной модели AdomdServer

Следующие объекты в объектной модели Microsoft.AnalysisServices.AdomdServer были улучшены или добавлены в модель.

Новый класс AdomdConnection

Класс Microsoft.AnalysisServices.AdomdServer.AdomdConnection является новым и предоставляет несколько расширений персонализации как через свойства, так и события.

Свойства

События

Новые свойства в классе Context

Класс Microsoft.AnalysisServices.AdomdServer.Context имеет два новых свойства:

Новый класс Server

Класс Microsoft.AnalysisServices.AdomdServer.Server является новым и предоставляет несколько расширений персонализации как через свойства класса, так и события.

Свойства

События

Класс AdomdCommand

Класс Microsoft.AnalysisServices.AdomdServer.AdomdCommand теперь поддерживает следующие команды многомерных выражений:

Расширения многомерных выражений и усовершенствования

Команда CREATE MEMBER улучшена с помощью caption свойства, display_folder свойства и associated_measure_group свойства.

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

Команда CREATE SET улучшена с помощью caption свойства, display_folder свойства и нового STATIC | DYNAMIC ключевого слова. Статический означает, что набор вычисляется только во время создания. Dynamic означает, что набор вычисляется каждый раз, когда набор используется в запросе. Значение по умолчанию — если STATIC ключевое слово опущено.

Команды CREATE KPI и DROP KPI добавляются в синтаксис многомерных выражений. Ключевые показатели эффективности можно создавать динамически из любого скрипта многомерных выражений.

Расширения наборов строк схемы

В столбце области MDSCHEMA_MEMBERS добавляется столбец области. Значения области приведены следующим образом: MDMEMBER_SCOPE_GLOBAL=1, MDMEMBER_SCOPE_SESSION=2.

В столбце MDSCHEMA_SETS set_evaluation_context добавляется столбец. Задайте значения контекста оценки следующим образом: MDSET_RESOLUTION_STATIC = 1, MDSET_RESOLUTION_DYNAMIC = 2.

В столбце области MDSCHEMA_KPIS добавляется столбец. Значения области приведены следующим образом: MDKPI_SCOPE_GLOBAL=1, MDKPI_SCOPE_SESSION=2.