Power BI Desktop 项目语义模型文件夹

重要

Power BI Desktop 项目目前为预览版。

本文介绍 Microsoft Power BI Desktop 项目的语义模型文件夹中的文件和子文件夹。 这里的文件和子文件夹代表 Power BI 语义模型。 根据项目不同,语义模型文件夹可以包括:

1 - 此文件是必需的。
2 - 使用 TMSL 格式保存时需要此文件。
3 - 使用 TMDL 格式保存时需要此文件。

并非每个项目语义模型文件夹都包含文中介绍的所有文件和子文件夹。

语义模型文件

.pbi\localSettings.json

包含仅适用于当前用户和计算机的语义模型设置。 应包含在 gitIgnore 或其他源代码管理排除中。 默认情况下,Git 会忽略此文件。

有关详细信息,请参阅 localSettings.json 架构文档

.pbi\editorSettings.json

包含作为语义模型定义的一部分而保存,供不同用户和环境使用的语义模型编辑器。

有关详细信息,请参阅 editorSettings.json 架构文档

.pbi\cache.abf

Analysis Services 备份 (ABF) 文件,其中包含上次编辑时模型的本地缓存副本和数据。 应包含在 gitIgnore 或其他源代码管理排除中。 默认情况下,Git 会忽略此文件。

Power BI Desktop 可以在没有 cache.abf 文件的情况下打开项目。 这种情况下,会打开连接到具有完整定义但没有数据的模型的报表。 如果存在 cache.abf,则 Power BI Desktop 会加载数据并使用 model.bim 中的内容覆盖模型定义。

.pbi\unappliedChanges.json

Power BI Desktop 允许保存在 Transform Data 编辑器 (Power Query) 中所做的更改,而无需先将这些更改应用于数据模型。

显示应用查询更改对话框的图像。

如果选择“稍后应用”,未应用的更改会保存到 unappliedChanges.json 文件中。 当待定更改处于 unappliedChanges 文件中时,Power BI Desktop 会提示你是要应用还是放弃这些待定更改:

显示待定更改警告的图像。

如果选择“应用更改”,则 Power BI Desktop 会使用 unappliedChanges.json 中的查询覆盖 model.bim 中的查询。 如果在 Power BI Desktop 外部的 model.bim 中编辑了查询,并且存在以前的 unappliedChanges.json 文件,则应用这些更改时,更改将丢失,并替换为 unappliedChanges.json 中的查询。

unappliedChanges.json 文件会自动合并到语义模型定义中,默认情况下保存在 Git 中。 这使你可以将正在进行的工作提交到开发分支,充当备份,并使其他团队成员能够访问它。 但是,你可将此文件从 Git 的跟踪中排除,从而防止未完成的查询工作影响其他开发人员。

有关详细信息,请参阅 unappliedChanges.json 架构文档

definition.pbism

包含语义模型和核心设置的总体定义。

此文件还通过“version”属性指定支持的语义模型定义格式。

版本 支持的格式
1.0 语义模型定义必须作为 TMSL 存储在 model.bim 文件中。
4.0 或更高版本 语义模型定义可以存储为 TMSL(model.bim 文件)或 TMDL(\definition 文件夹)。

有关详细信息,请参阅 definition.pbism 架构文档

model.bim

仅当 Power BI 项目使用 TMSL 格式保存时,此文件才可用。 它包含项目模型的表格模型脚本语言 (TMSL) 数据集对象定义。

definition\ 文件夹

仅当 Power BI 项目使用 TMDL 格式保存时,此文件才可用。 它替换 model.bim 文件。

此文件包含项目模型的表格模型定义语言 (TMDL)数据集对象定义。

diagramLayout.json

包含定义与报表关联的语义模型结构的图表元数据。 预览期间,此文件不支持外部编辑。

平台中添加用户。

Fabric 平台文件,其中包含对于建立和维护 Fabric 项目与 Git 之间的连接至关重要的属性。

要了解详细信息,请参阅 Git 集成自动生成的系统文件

TMDL 格式

为了提供更好的源代码管理和共同开发体验,可使用表格模型定义语言 (TMDL) 作为语义模型文件格式保存 Power BI 项目文件 (PBIP)。

与表格模型脚本语言 (TMSL) 不同,TMDL 从一开始就被设计为人性友好型,不仅可提升可读性,而且有助于在任何文本编辑器中轻松编辑。 这为源代码管理和协作开发体验提供了实质性的增强

友好 TMDL 差异的屏幕截图。

TMDL 没有像表格模型脚本语言 (TMSL) 那样的大型 JSON 文件,而是有一个文件夹结构,每个表、透视图、角色和区域性都有单独的文件。 这使得与他人合作更加容易,并且只需查看文件夹和文件即可理解语义模型结构。 最终,在处理 git 差异和合并冲突时,这将带来出色的源代码管理和共同开发体验。

语义模型 TMDL 差异的屏幕截图。

此处了解有关 TMDL 的详细信息。

启用 TMDL 格式预览功能

“使用 TMDL 另存为 Power BI 项目”功能当前以预览版提供。 在使用它之前,必须先在预览功能中启用它:

转到“文件”>“选项和设置”>“选项”>“预览功能”,并勾选“使用 TMDL 格式检查存储语义模型”旁边的框

使用 TMDL 另存为项目

启用 TMDL 预览功能后,保存项目时,语义模型将在语义模型文件夹中保存为名为 \definition 的 TMDL 文件夹

语义模型文件夹中定义文件夹的屏幕截图。

详细了解 TMDL 文件夹结构

将现有 PBIP 转换为 TMDL

如果已有将 TMSL 用作语义模型格式的 PBIP,则可将其转换为 TMDL,如下所示:

  1. 在 Power BI Desktop 中打开 PBIP。

  2. 确保已启用该预览功能。

  3. 保存该项目。 出现提示,要求你升级到 TMDL。

  4. 选择“升级”。

    重要

    升级到 TMDL 后,无法还原回 TMSL。 如果你认为可能需要还原回 TMSL,请先保存 PBIP 文件的副本。

    将语义模型文件夹升级到 TMDL 的提示的屏幕截图。

现有的表格模型脚本语言 (TMSL) 文件 (model.bim) 替换为包含语义模型的 TMDL 表示形式的 \definition 文件夹

包含 TMSL 文件夹和 TMDL 文件夹的 PBIP 项目的屏幕截图。

如果选择“保留当前项”格式,桌面不会再次提示升级

对 TMDL 文件进行外部更改

为了获得更好的读取和编辑 TMDL 文件的体验,请安装 Microsoft VS Code 扩展 TMDL - Visual Studio Marketplace

使用 VS Code 打开 PBIP 文件夹,并导航到语义模型定义文件夹。

VS Code 中语义模型定义文件夹的屏幕截图。

Power BI Desktop 不知道其他工具对项目文件所做的更改。 因此,如果对在 Power BI Desktop 外部打开的文件进行任何更改,则需要重启才能在 Power BI Desktop 中显示这些更改。

有关 Power BI Desktop 外部支持的写入操作,请参阅此处

TMDL 错误

如果对 TMDL 文件进行了任何无效的编辑,Power BI Desktop 在打开时引发错误,并显示错误的位置:

文件无效错误消息的屏幕截图。

使用 TMDL 的 Fabric Git 集成

在公共预览期间,默认情况下,Fabric Git 集成仍将使用 TMSL 导出语义模型。 但是,如果配合使用 Fabric Git 集成和 TMDL 格式将语义模型导入 Fabric,则 Fabric Git 集成将使用 TMDL 格式将语义模型定义导出到 Git(如果服务中存在任何语义模型更改)。

重要

如果使用任何其他导入方法(如 Power BI Desktop 发布)导入语义模型,则 Fabric Git 集成将切换回默认 TMSL 格式。