表格对象模型 (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 的表格模型编程

表格对象模型层次结构

从逻辑角度来看,所有表格对象都构成一个树,其根是 一个模型,从数据库继承。 服务器数据库 不被视为表格,因为这些对象还可以表示在多维模式下运行的服务器上托管的多维数据库,或者表示不对对象定义使用表格元数据的较低兼容级别的表格模型。

AttributeHierarchyKPILinguisticMetadata 外,每个子对象都可以是集合的成员。 例如,Model 对象包含通过 Tables 属性) (Table 对象的集合,每个 Table 对象包含 Column 对象的集合,依此类而论。

此层次结构中任何父对象的最低级别后代是 一个 Annotation 对象,只要提供用于处理架构的代码,该对象就可用于选择性地扩展架构。

对象层次结构关系图

TOM 基于 AMO 基础结构构建,该基础结构还适用于兼容级别低于 1200 的多维和表格数据库。 这具有一些实际意义。 管理未在表格元数据 ((如 服务器数据库) )中指定的对象时,需要利用现有 AMO 堆栈中描述这些对象的部分。 除了旧 API,还有主要和次要对象的概念,这些对象提供从服务器发现的对象状态或保存到服务器时的对象状态的精细描述。 Microsoft.AnalysisServices 命名空间下的 MajorObject 类公开 RefreshUpdate 的方法。 次要对象只能通过包含次要对象的主要对象进行刷新或保存。

相比之下,在管理属于表格元数据的对象(如 ModelTable)时,可以利用全新的表格堆栈。 在此堆栈中,更新是精细的,这意味着派生自 Microsoft.AnalysisServices.Tabular 命名空间下的 MetadataObject 类的每个元数据对象都可以单独保存到服务器。 通常,你将发现整个 模型。 然后更改其下的各个元数据对象,例如 TableColumn。 然后,调用 Model.SaveChanges () 方法,该方法可了解你在细粒度级别所做的更改,并将命令发送到服务器以仅更新那些已更改的对象。

TOM 和 XMLA

在网络上,TOM 使用 XMLA 协议与服务器通信并管理对象。 管理非表格对象时,TOM 使用 ASSL(XMLA 的 Analysis Services 脚本语言扩展)。 管理表格对象时,TOM 使用 MS-SSAS-T 表格协议,这也是 XMLA 的扩展。 若要了解详细信息,请参阅 MS-SSAS-T SQL Server Analysis Services表格协议文档

TOM 和 JSON

表格元数据(结构化为 JSON 文档)通过表格模型脚本语言 (TMSL) 具有新的命令和对象模型定义语法。 脚本语言使用 JSON 作为请求和响应的正文。

尽管 TMSL 和 TOM 公开相同的对象、 等以及相同的操作,但 创建删除刷新、TOM 不会在网络上使用 TMSL。 如前所述,TOM 改用 MS-SSAS-T 表格协议。

作为用户,可以选择是通过 C# 程序或 PowerShell 脚本中的 TOM 库,还是通过 PowerShell、SQL Server Management Studio (SSMS) 或SQL Server 代理作业执行的 TMSL 脚本来管理表格数据库。

决定使用其中一个或另一个将归归于你的要求的具体细节。 与 TMSL 相比,TOM 库提供了更丰富的功能。 具体而言,TMSL 仅在数据库、表、分区或角色级别提供粗粒度操作,而 TOM 允许以更精细的粒度执行操作。 若要以编程方式生成或更新模型,需要 TOM 库中 API 的全部范围。

将 TOM 与 Power BI 配合使用

Power BI Premium、Premium Per User 和 Power BI Embedded 工作区支持通过 XMLA 终结点建立开放平台连接。 借助 XMLA 终结点,可以使用自定义工具、脚本和自动化过程进行数据建模,并执行工作区和语义模型管理任务。

在使用 TOM 创建 .Net 应用程序以处理 Power BI 语义模型之前,请务必阅读 Power BI 文档中 的语义模型与 XMLA 终结点的连接 。 本文介绍如何使用自定义应用、外部工具和脚本启用 XMLA 终结点进行读写访问、获取工作区连接 URL 以及语义模型管理的其他重要方面。

若要详细了解如何使用表格对象模型进行语义模型管理和管理,请参阅 将 Power BI 语义模型编程 (TOM)

另请参阅

表格模型的兼容级别
Analysis Services 客户端库
XML for Analysis (XMLA) 参考
分析管理对象 (AMO)