安装、分发和引用表格对象模型

适用于:SQL Server 2016 及更高版本的 Analysis Services Azure Analysis Services Fabric/Power BI Premium

本文介绍如何下载、引用和重新分发表格对象模型 (TOM) ,这是一个 C# 库,用于在托管代码中创建和管理表格模型和数据库。

TOM 是 AMO 客户端库 (Microsoft.AnalysisServices.dll) 的扩展。 若要使用 TOM,模型和数据库必须处于兼容级别 1200 或更高。

AMO-TOM 程序集

AMO 包括新的核心程序集、表格程序集和 JSON 程序集。 它还包括原始 AMO 程序集(Microsoft.AnalysisServices.dll),自首次发布以来一直是 Analysis Services 的一部分。 重构的 AMO 将公共类卸载到一个程序集,并通过其他程序集在表格 API 和多维 API 之间提供逻辑划分。

下表描述了每个程序集:

程序集 功能 重要类
核心
Microsoft.AnalysisServices.Core.dll
表格数据库和多维数据库通用。

提供异常处理、与服务器实例和数据库的通用连接,以及访问 Server 和 Database 对象的通用属性和方法。
核心服务器
核心数据库
AmoException
汤姆
Microsoft.AnalysisServices.Tabular.dll 版本 13.0.1601.5 或更高版本。
创建和管理表格元数据对象。 TOM 服务器
TOM 数据库
型号


关系
AMO
Microsoft.AnalysisServices.dll
创建和管理多维元数据对象,包括表格 1050-1103 数据库。 AMO 服务器
AMO 数据库
多维数据集
维度
度量值组
Json
Microsoft.AnalysisServices.Tabular.Json.dll
一个帮助程序 DLL,用于包装 NewtonSoftJson.dll (JSON.NET) 以控制更新,消除了在服务器工作负载中引入 JSON 序列化的功能更改的风险。

此 DLL 作为依赖项存在于 TOM 中,不应直接在代码中使用。
无。

了解程序集依赖项

若要针对 AMO 进行编程,解决方案必须包含对依赖 DLL 的引用。 AMO 和 TOM 都依赖于 Core,因为它提供基类。

AMO 依赖于 TOM,因为 AMO 中的某些类引用了 TOM 中的类。 例如,AMO 数据库对象具有在 TOM dll 中实现的 Model 类型的 Model 属性。

AMO TOM 依赖项

不能在没有 Microsoft.AnalysisServices.Tabular.dll 的情况下分发 Microsoft.AnalysisServices.dll,但可以在没有其他命名空间的情况下引用其各自的命名空间。

选择要在代码中使用的命名空间

在对象层次结构中,Database 下的任何对象都是通过 Model 对象构建的表格元数据,或者通过 Cube、Dimension 或 MeasureGroup 对象构建的多维元数据构造。 对于服务器、数据库、角色或跟踪级别的高级操作,选择引用哪个命名空间将取决于代码需要支持的工作负载。

  • 如果解决方案的兼容性级别为 1200 或更高,则使用 Tabular.Server 或 Tabular.Database,并且所使用的 Database 对象必须提供对模型、表、列和其他以表格元数据构造表示的对象的访问权限。
  • 如果下游代码引用多维对象(如多维数据集、数据源、DataSourceViews 和维度),请使用 AnalysisServices.Server 或 AnalysisServices.Database。

对于支持混合数据库和模型类型的工具和应用程序,需要这两个命名空间。

不需要在代码中引用 Core 命名空间;Core 中的类是为主要对象提供通用属性(如 Name 和 Description)而创建的基类。

下载并安装 AMO

  1. 转到 “客户端库”。

  2. 使用 Windows Installer 或 NuGet 包选择并下载 AMO。

添加引用

  1. 解决方案资源管理器>添加引用>浏览

  2. 转到 C:\Program Files\Microsoft SQL Server\140\SDK\Assemblies,然后选择:

    • Microsoft.AnalysisServices.Core
    • Microsoft.AnalysisServices.Tabular
    • Microsoft.AnalysisSerivces.Tabular.Json
  3. 单击 “确定” 。 在“解决方案资源管理器”中,确认“引用”文件夹中存在程序集。

  4. 在代码页中,如果数据库和模型为表格 1200 或更高的兼容级别,请添加 Microsoft.AnalysisServces.Tabular 命名空间。

    using Microsoft.AnalysisServices; 
    using Microsoft.AnalysisServices.Tabular;
    

    当包含具有 Server、Database、Role 和 Trace 对象的通用类的命名空间时,请通过限定要使用的命名空间来避免不明确的引用 (例如,Microsoft.AnalysisServices.Tabular.Server 使用表格命名空间) 实例化 Server 对象。

使用应用程序重新分发 AMO 和 TOM

通过 sql_as_amo.msi 安装包或 NuGet 包重新分发 AMO 和 TOM。 如果要为调用 AMO 或 TOM 的客户端应用程序生成安装程序,请将 sql_as_amo.msi 添加到可执行文件。

包是独立的,提供在代码中调用 AMO 和 TOM 所需的所有程序集。 TOM 编程方案不需要其他包(如 SQL_AS_OLEDB.msi 或 SQL_AS_ADOMD.msi)。