Табличная объектная модель (TOM)

Применимо к: SQL Server 2016 и более поздних версий Analysis Services Azure Analysis Services Fabric/Power BI Premium

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

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

Так как TOM является расширением AMO, все классы, представляющие новые табличные объекты, реализуются в новой сборкеMicrosoft.AnalysisServices.Tabular.dll . Классы общего назначения AMO были перемещены в сборку Microsoft.AnalysisServices.Core . Код должен ссылаться на обе сборки. Дополнительные сведения см. в статье Установка, распространение и ссылка на табличную объектную модель (Microsoft.AnalysisServices.Tabular).

API доступен для управляемого кода .NET. Дополнительные сведения о конкретных классах AMO/TOM см . в справочнике по пространству имен Microsoft.AnalysisServices. Полный список вариантов программирования для табличных моделей, включая поддержку языка сценариев и запросов, см. в статье Программирование табличных моделей для уровня совместимости 1200.

Иерархия табличной объектной модели

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

За исключением AttributeHierarchy, KPI и LinguisticMetadata, каждый дочерний объект может быть членом коллекции. Например, объект Model содержит коллекцию объектов Table (с помощью свойства Tables ), каждый объект Table содержит коллекцию объектов Column и т. д.

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

схема иерархии объектов схема

ToM основан на инфраструктуре AMO, которая также поддерживает многомерные и табличные базы данных с уровнями совместимости ниже 1200. Это имеет некоторые практические последствия. При управлении объектами, не указанными в табличных метаданных (например , сервером или базой данных), необходимо использовать части существующего стека AMO, описывающие эти объекты. Наряду с устаревшим API является понятием основных и дополнительных объектов, которые предоставляют детализированное описание состояния объекта, обнаруженного с сервера или при сохранении на сервере. Класс MajorObject в пространстве имен Microsoft.AnalysisServices предоставляет методы для Refresh и Update. Дополнительные объекты обновляются или сохраняются только с помощью основного объекта, который их содержит.

Напротив, при управлении объектами, которые являются частью табличных метаданных, например Модель или Таблица, используется совершенно новый табличный стек. В этом стеке обновления детализированы. Это означает, что каждый объект метаданных, производный от класса MetadataObject в пространстве имен Microsoft.AnalysisServices.Tabular, может быть сохранен на сервере по отдельности. Как правило, обнаруживается вся модель. Затем вы вносите изменения в отдельные объекты метаданных в нем, такие как Таблица или Столбец. Затем вызывается метод Model.SaveChanges(), который распознает изменения, внесенные вами на точном уровне, отправляя на сервер команды для обновления только тех объектов, которые изменились.

TOM и XMLA

По сети TOM использует протокол XMLA для взаимодействия с сервером и управления объектами. При управлении не табличными объектами TOM использует ASSL, расширение языка сценариев служб Analysis Services для XMLA. При управлении табличными объектами TOM использует табличный протокол MS-SSAS-T, а также расширение XMLA. Дополнительные сведения см. в статье MS-SSAS-T SQL Server Analysis Services документации по табличному протоколу.

TOM и JSON

Табличные метаданные, структурированные как документы JSON, имеют новый синтаксис определения команды и объектной модели с помощью языка TMSL. Язык сценариев использует JSON для текста запросов и ответов.

Хотя и TMSL, и TOM предоставляют одни и те же объекты, Table, Column и т. д., а также одни и те же операции, Create, Delete, Refresh, TOM не используют TMSL по сети. ToM использует табличный протокол MS-SSAS-T, как отмечалось ранее.

Пользователь может выбрать, следует ли управлять табличными базами данных с помощью библиотеки TOM из программы C# или скрипта PowerShell или скрипта TMSL, выполняемого с помощью PowerShell, SQL Server Management Studio (SSMS) или задания агент SQL Server.

Решение об использовании одного или другого будет сводится к специфике ваших требований. Библиотека TOM предоставляет более широкие функциональные возможности по сравнению с TMSL. В частности, в то время как TMSL предлагает только грубые операции на уровне базы данных, таблицы, секции или роли, TOM позволяет выполнять операции на гораздо более детальном уровне. Для создания или обновления моделей программным способом потребуется полный объем API в библиотеке TOM.

Использование TOM с Power BI

рабочие области Power BI Premium, Premium на пользователя и Power BI Embedded поддерживают подключение с открытой платформой через конечную точку XMLA. С помощью конечной точки XMLA можно использовать пользовательские инструменты, скрипты и автоматизированные процессы для моделирования данных, а также для выполнения административных задач рабочей области и семантической модели.

Прежде чем создавать приложение .NET, использующее TOM для работы с семантические модели Power BI, обязательно ознакомьтесь с семантической моделью подключения к конечной точке XMLA в документации по Power BI. В этой статье описывается, как включить конечную точку XMLA для доступа на чтение и запись, получить URL-адрес подключения к рабочей области и другие важные аспекты управления семантической моделью с помощью пользовательских приложений, внешних инструментов и скриптов.

Дополнительные сведения об использовании табличной объектной модели для администрирования семантической модели и управления ими см. в статье Программирование семантических моделей Power BI (TOM).

См. также раздел

Уровень совместимости для табличных моделей
Клиентские библиотеки служб Analysis Services
Справочник по XML для аналитики (XMLA)
Объекты AMO