Поделиться через


Модули персонализации служб Analysis Services

Применимо к: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

Сборки

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

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

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

Новый класс AdomdConnection

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

Свойства

  • Microsoft.AnalysisServices.AdomdServer.AdomdConnection.SessionID — строковое значение только для чтения, представляющее идентификатор сеанса текущего подключения.

  • Microsoft.AnalysisServices.AdomdServer.AdomdConnection.ClientCulture — ссылка только для чтения на язык и региональные параметры клиента, связанные с текущим сеансом.

  • Microsoft.AnalysisServices.AdomdServer.AdomdConnection.User — ссылка только для чтения на интерфейс удостоверений, представляющий текущего пользователя.

События

  • Microsoft.AnalysisServices.AdomdServer.AdomdConnection.CubeOpened

  • Microsoft.AnalysisServices.AdomdServer.AdomdConnection.CubeClosing

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

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

  • Microsoft.AnalysisServices.AdomdServer.Context.Server — ссылка только для чтения на новый объект сервера.

  • Microsoft.AnalysisServices.AdomdServer.Context.CurrentConnection— ссылка только для чтения на новый объект Microsoft.AnalysisServices.AdomdServer.AdomdConnection.

Новый класс Server

Свойства и события класса Microsoft.AnalysisServices.AdomdServer.Server.

Свойства

  • Microsoft.AnalysisServices.AdomdServer.Server.Name— строковое значение только для чтения, представляющее имя сервера.

  • Microsoft.AnalysisServices.AdomdServer.Server.Culture— ссылка только для чтения на глобальный язык и региональные параметры, связанные с сервером.

События

  • Microsoft.AnalysisServices.AdomdServer.Server.SessionOpened

  • Microsoft.AnalysisServices.AdomdServer.Server.SessionClosing

Класс AdomdCommand

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

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

Команда CREATE MEMBER дополнена свойством подпись, свойством display_folder и свойством associated_measure_group.

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

Команда CREATE SET дополнена свойством подпись, свойством display_folder и новым статическим | ДИНАМИЧЕСКИЕ ключевое слово. Статический означает, что набор вычисляется только во время создания. Динамический означает, что набор вычисляется каждый раз, когда набор используется в запросе. Значение по умолчанию — 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.

Добавлен столбец scope в набор строк схемы MDSCHEMA_KPIS. Значения области: MDKPI_SCOPE_GLOBAL=1, MDKPI_SCOPE_SESSION=2.