表格化模型脚本语言(TMSL)参考文档

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

表格模型脚本语言(TMSL)是兼容级别为 1200 或更高版本的表格数据模型的命令和对象模型定义语法。 TMSL 通过 XMLA 协议与 Analysis Services 通信,该方法 XMLA.Execute 接受 TMSL 中基于 JSON 的 语句 脚本以及 Analysis Services 脚本语言(ASSL for XMLA)中基于 XML 的传统脚本。

TMSL 的关键元素:

  • 基于表格模型语义的表格元数据。

    表格模型由表、列和关系组成。 TMSL 中的等效对象定义自然是表、列、关系等。 新的元数据引擎支持这些定义。

  • 对象定义的结构为 JSON 而不是 XML。

    除了有效负载格式的不同(可以是 JSON 或 XML),在功能上,TMSL 和 ASSL 都等效于它们如何提供命令和元数据给用于服务器通信和数据传输的 XMLA 方法。

如何使用 TMSL

浏览 TMSL 脚本的最简单方法是在已知道的模型中使用 SQL Server Management Studio (SSMS) 中的 CREATE、ALTER、DELETE 或 Process 命令。

  1. 查找要使用的命令: TMSL 参考 - 命令

  2. 检查命令中使用的对象的对象定义引用: TMSL 引用 - 对象

  3. 选择用于执行 TMSL 脚本的方法:

模型定义架构

以下代码片段显示了数据库兼容级别 1200 及更高版本的架构的缩写版本,已折叠以显示主要对象。

"database": {
  "description": "Database object of Tabular Object Model (TOM)",
  "type": "object",
  "properties": {
    "name": {...},
    "id": {...},
    "description": {...},
    "compatibilityLevel": {...},
    "readWriteMode": {...},
    "model": {
      "description": "Model object of Tabular Object Model (TOM)",
      "type": "object",
      "properties": {
        "name": {...},
        "description": {...},
        "storageLocation": {...},
        "defaultMode": {...},
        "defaultDataView": {...},
        "culture": {...},
        "collation": {...},
        "annotations": {...},
        "tables": {...},
        "relationships": {...},
        "dataSources": {...},
        "perspectives": {...},
        "cultures": {...},
        "roles": {...},
        // "functions": {...}, // For database compatibility level 1702 and above
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}

Analysis Services 中的脚本语言

Analysis Services 支持 ASSL 和 TMSL 脚本语言。 只有在 1200 兼容性级别或更高创建的表格模型才会以 JSON 格式在 TMS 中描述。

Analysis Services 脚本语言(ASSL for XMLA)是第一种脚本语言,仍然是兼容级别较低的多维模型和表格模型的唯一脚本语言(1100 或 1103)。 在 ASSL 中,110x 的表格模型以多维术语描述,例如 多维数据集 (适用于模型)和 度量值组 (对于表)。

注释

在 [SQL Server Data Tools (SSDT)中,可以通过将其 CompatibilityLevel 切换到 1200 或更高版本来升级早期版本的表格模型以使用 TMSL。 请记住,升级不可逆。 在升级之前,如果以后需要原始版本,请备份模型。

下表是特定兼容级别的不同平台/版本中 Analysis Services 数据模型的脚本语言矩阵。

版本 多维 表格 110x Tabular 1200 表格 1400 Tabular 1500 表格 1600
Power BI Premium NA NA NA NA TMSL TMSL
Azure Analysis Services NA NA TMSL TMSL TMSL TMSL
SQL Server 2022 Analysis Services ASSL ASSL TMSL TMSL TMSL TMSL
SQL Server 2019 Analysis Services ASSL ASSL TMSL TMSL TMSL NA
SQL Server 2017 Analysis Services ASSL ASSL TMSL TMSL NA NA
SQL Server 2016 Analysis Services ASSL ASSL TMSL NA NA NA
SQL Server 2014 Analysis Services ASSL ASSL NA NA NA NA
SQL Server 2012 Analysis Services ASSL ASSL NA NA NA NA