Model 对象 (TMSL)

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

定义表格模型。 每个数据库都有一个模型,并且只能在任何给定命令中指定一个数据库。 Database 对象是父对象。

模型定义太大,无法在一个主题中重现整个语法。 出于此原因,可以在下方找到突出显示main部分的部分语法,其中包含指向子对象的链接。

也许了解模型定义的最佳方法是从熟悉的表格模型开始。 使用 SQL Server Data Tools 中的“查看代码”选项查看其定义。 请记得安装 JSON 编辑器,以便可以查看代码。 可以通过 下载社区版 或其他版本的 Visual Studio,在 Visual Studio 中获取 JSON 编辑器。

注意

在任何脚本中,每次只能引用一个数据库。 对于除数据库本身以外的任何对象,如果指定模型,则 Database 属性是可选的。 模型与数据库之间存在一对一映射,如果未显式提供数据库名称,则可用于推断数据库名称。
同样,可以省略 Model,在数据库上设置其属性。

对象定义

所有对象都有一组通用的属性,包括名称、类型、说明、属性集合和注释。 模型 对象还具有以下属性。

storageLocation
磁盘上放置模型的位置。

defaultMode
使数据在分区中可用的默认方法。

defaultDataView
对于 DirectQuery 模式下的模型,此属性确定用于对模型运行查询的分区。 有效值包括 Full 和 Sample。

culture
用于格式设置的区域性。

collation
排序规则序列。


模型中表的完整集合,包括分区、列、度量值、KPI 和注释。 有关详细信息 ,请参阅 tables 对象 (TMSL)

关系
指定每对表之间的关系,包括设置筛选方向和安全性的属性。 有关详细信息 ,请参阅关系对象 (TMSL)

dataSources
与向模型提供数据的外部数据库的一个或多个连接,或用于传递查询。 有关详细信息 ,请参阅 DataSources 对象 (TMSL)

角色
在 DAX 中关联数据库权限、成员帐户以及(可选)安全筛选器的对象,用于自定义访问控制。

使用情况

模型 对象包含整个模型。 需要在大多数命令中指定一个 Model 和/或其父 Database 对象。

创建、替换或更改模型对象时,请指定对象定义的所有读写属性。 省略读写属性被视为删除。

分部语法

由于此对象定义太大,因此仅列出第一级属性。 有关子 对象列表,请参阅表格模型脚本语言中的对象定义 (TMSL)

    "model": {  
      "description": "Model object of a tabular database",  
      "type": "object",  
      "properties": {  
          "name": {  },  
          "description": {  },  
         "storageLocation": {  },  
         "defaultMode":  {  },  
         "defaultDataView": {  },  
         "culture": {  },  
         "collation": {  },  
         "annotations": {  },  
         "tables": {  },  
         "relationships": {  },  
         "dataSources": {  },  
         "perspectives": {  },  
            "cultures": {  },  
         "roles": {  }  
    }