表格对象模型 (TOM)

适用对象: SQL Server 2016 及更高版本 Analysis Services Azure Analysis Services Power BI Premium

表格对象模型 (TOM) 是 (AMO) 客户端库的分析管理对象的扩展,创建它是为了支持兼容性级别1200和更高版本中创建的表格模型的编程方案。 与 AMO 一样,TOM 提供一种编程方式来处理管理功能,例如创建模型、导入和刷新数据,以及分配角色和权限。

TOM 公开了本机表格元数据,如 模型关系 对象。 下面提供了对象模型树的高级视图,其中阐释了组件部件是如何相关的。

由于 TOM 是 AMO 的扩展,因此表示新表格对象的所有类都在新的 Microsoft.AnalysisServices.Tabular.dll 程序集中实现。 AMO 的常规用途类已移动到 microsoft.analysisservices.sharepoint.integration.dll 程序集。 你的代码需要引用这两个程序集。 有关详细信息,请参阅 安装、分发和引用表格对象模型 (microsoft.analysisservices.sharepoint.integration.dll)

目前,API 仅适用于 .NET framework 上的托管代码。 若要了解有关特定 AMO/TOM 类的详细信息,请参阅 Microsoft.analysisservices.sharepoint.integration.dll 命名空间引用。 若要查看表格模型的编程选项(包括脚本和查询语言支持)的完整列表,请参阅 兼容性级别1200的表格模型编程

表格对象模型层次结构

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

除了 AttributeHierarchyKPILinguisticMetadata 以外,每个子对象都可以是集合的成员。 例如, Model 对象包含通过 Tables 属性) (的 对象的集合,其中每个 table 对象都包含 对象的集合等。

此层次结构中的任何父对象的最低级别子代是一个 批注 对象,可用于根据需要提供处理该架构的代码来扩展该架构。

对象层次结构图

TOM 建立在 AMO 基础结构之上,该基础结构还可容纳低于1200的兼容级别的多维数据库和表格数据库。 这会带来一些实际的影响。 如果您管理的是不在表格元数据中指定的对象 (如 服务器数据库) ,则需要利用现有 AMO 堆栈中描述这些对象的部分。 除了旧的 API,主要和次要对象还提供从服务器发现的对象状态的精细说明,或者保存到服务器时。 Microsoft.analysisservices.sharepoint.integration.dll 命名空间下的 MajorObject 类公开用于 刷新更新 的方法。 次要对象只通过包含它们的主要对象进行刷新或保存。

与此相反,当您管理作为表格元数据的一部分的对象(如 模型)时,您可以利用全新的表格堆栈。 在此堆栈中,更新是细粒度的,这意味着每个从 Microsoft.analysisservices.sharepoint.integration.dll 命名空间下的 MetadataObject 类派生的元数据对象均可单独保存到服务器。 通常,您会发现整个 模型。 然后对其下的各个元数据对象(如 )进行更改。 然后,你可以调用 () 方法了解你在精细级别所做的更改,将命令发送到服务器,以便仅更新那些已更改的对象。

TOM 和 XMLA

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

TOM 和 JSON

表格元数据(结构化为 JSON 文档)通过表格模型脚本语言 (TMSL) 提供了一个新的命令和对象模型定义语法。 脚本语言将 JSON 用于请求和响应正文。

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

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

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