Power BI Desktop 项目(预览版)

重要

Power BI Desktop 项目目前为预览版

Power BI Desktop 引入了一种创作、协作和保存项目的新方法。 将工作另存为 Power BI 项目 (PBIP) 时,报表和语义模型项定义在简单直观的文件夹结构中另存为单独的纯文本文件

将工作另存为项目具有以下优势:

  • 文本编辑器支持 - 项目定义文件是包含语义模型和报表元数据的 JSON 格式文本文件。 它们已公开记录,可读。 虽然项目文件支持记事本等简单文本编辑工具,但最好使用Visual Studio Code (VS Code)等代码编辑器,从而提供丰富的编辑体验,包括智能感知、验证和 Git 集成。

  • 编程生成和编辑项目定义 - 可以使用常用且易于使用的表格模型脚本语言 (TMSL)创建脚本,也可以创建自己的自定义应用程序更改项目定义。 应用程序可以基于项目定义架构和/或客户端库的公共文档。

  • 源代码管理 - Power BI 语义模型和报表项目定义可以存储在源代码管理系统(例如 Git)中。 使用 Git,可以跟踪版本历史记录、比较修订(差异),并还原到之前版本。 使用 Power BI Desktop 时,源代码管理还可以取消阻止协作,方法是使用熟悉的协作机制解决冲突(合并)并查看更改(拉取请求)。 要了解详细信息,请参阅Git 中的版本控制

  • 持续集成和持续交付 (CI/CD) - 可以使用组织中的开发人员向 CI/CD 系统提交建议更改的系统。 然后,系统会先使用一系列质量入口验证更改,再将更改应用到生产系统。 这些质量入口可以包括其他开发人员的代码评审、自动测试和自动生成,从而验证更改的完整性。 CI/CD 系统通常基于现有的源代码管理系统构建。 要了解详细信息,请参阅DevOps - 持续集成DevOps - 持续交付

视频

请参阅 Microsoft Build 2023 中引入的 Power BI Desktop 项目和其他开发人员模式功能。

启用预览功能

在 Power BI Desktop 中另存为项目的功能目前为预览版。 若要使用此功能,需要高级许可证,并且必须在预览功能中启用此功能

要启用,请在 Power BI Desktop“>文件>”“选项和设置”“>选项>”“预览功能”中,选中“Power BI 项目 (.pbip) 保存选项”的复选框。

另存为项目

如果正在处理新项目,或者已打开现有 Power BI Desktop 文件 (pbix) ,可以将工作另存为 Power BI 项目文件 (pbip):

显示将文件另存为 Power BI 项目的屏幕截图

另存为项目时,Power BI Desktop 会将报表和语义模型项另存为文件夹,每个文件夹都包含定义项目的文本文件。 会看到如下内容:

显示 Power BI 项目文件的屏幕截图

保存为项目后,可以通过查看标题栏来查看项目的处理时间:

保存到项目时显示 Power BI Desktop 标题的屏幕截图。

如果单击标题栏,系统将显示特定于 Power BI 项目的浮出控件。 这样,便可以找到项目文件以及报表和语义模型的显示名称设置。 还可以通过单击路径在文件资源管理器中打开文件夹。

显示 Power BI Desktop 标题浮出控件的屏幕截图。

让我们仔细看看项目根文件夹中显示的内容:

<project name(项目名称)>.SemanticModel

表示 Power BI 语义模型的文件和文件夹的集合。 它包含一些你可能处理的最重要文件,例如 model.bim。 要详细了解此处的文件和子文件夹,请参阅项目语义模型文件夹

<project name>.Report

表示 Power BI 报表的文件和文件夹的集合。 要详细了解此处的文件、子文件夹和文件,请参阅项目报表文件夹

.gitIgnore

指定 Git 应忽略有意未跟踪的文件。 Power BI Desktop 会在保存时在根文件夹中创建.gitignore文件(如果它尚不存在)。

语义模型和报表子文件夹都有 .gitIgnore 中指定的默认 git 忽略文件:

├── project
│   ├── *.SemanticModel
│   │   ├── .pbi
│   │   │   ├── localSettings.json
│   │   │   └── cache.abf
│   ├── *.Report
│   │   ├── .pbi
│   │   │   └── localSettings.json

<project name>.pbip

PBIP 文件包含指向报表文件夹的指针,打开 PBIP 可打开目标报表和模型进行创作。

有关详细信息,请参阅 pbip 架构文档

打开 Power BI 项目

可以打开报表文件夹中的pbip文件或pbir文件,从而从 Power BI 项目文件夹中打开 Power BI Desktop。 这两个选项都可打开报表进行编辑,如果存在对语义模型的相对引用,请打开该语义模型。

可以将多个报表和语义模型保存到同一个文件夹中。 不需要为每个报表使用单独的 pbip 文件,因为可以直接从报表文件夹中的 .pbir 打开每个报表。

├── project
│   ├── AdventureWorks-Sales.Report
│   │   └── definition.pbir
│   ├── AdventureWorks-Stocks.Report
│   │   └── definition.pbir
│   ├── AdventureWorks.SemanticModel
|   |   └── *.*
│   .gitignore
└──  AdventureWorks.pbip

Power BI Desktop 外部的更改

另存为项目后,不必仅在 Power BI Desktop 中更改语义模型和报表定义。 可以使用其他工具,例如 VS Code、开源社区工具(例如表格编辑器),甚至是记事本。 但是,并非每个文件或更改都支持通过外部开源工具进行编辑。

在 Power BI Desktop 外部更改文件或属性可能会导致意外错误,甚至阻止打开 Power BI Desktop。 在这些情况下,必须先解决文件中的问题,然后才能尝试在 Power BI Desktop 中再次打开项目。

如果可能,Power BI Desktop 会指示错误的文件和位置:

无法打开文件错误的屏幕截截图。

未记录以下文件的架构详细信息。 在预览期间,不支持在 Power BI Desktop 外部更改这些文件:

模型创作

可通过两种方式使用外部工具更改语义模型定义:

  • 通过使用外部工具连接到 Power BI Desktop 的 Analysis Service (AS) 实例。
  • 通过使用 VS Code 或其他外部工具编辑 model.bim 文件中的 JSON 元数据。

并非每个模型对象都支持写入操作。 应用支持范围之外的更改可能会导致意外结果。

支持写入操作的对象:

对象 连接到 AS 实例 文件更改
12
计算表
计算列
层次结构
关系
度量值
模型 KPI
计算组
透视
翻译版本
行级别安全性 (RLS)
对象级安全性 (OLS)
批注
M 表达式 34

请记住:

  • 在 Power BI Desktop 外部对打开文件所做的任何更改都需要重启,以便这些更改显示在 Power BI Desktop 中。 Power BI Desktop 不知道其他工具对项目文件所做的更改。

  • Power BI Desktop 不支持具有多个分区的表。 每个表仅支持一个分区。 打开报表时,创建具有空分区或多个分区的表会导致错误。

  • 不应使用外部工具更改由 Power BI Desktop 创建的自动日期表。

  • 更改使用直接查询连接 Power BI 语义模型或 Analysis Services 模型的模型时,必须更新已更改对象的 ChangedProperties 和 PBI_RemovedChildren 集合,以包含所有已修改或已删除的属性。 如果未更新 ChangedProperties 和/或 PBI_RemovedChildren,Power BI Desktop 可能会在下次编辑查询或在 Power BI Desktop 中刷新模型时覆盖任何更改。

  • 1 - 支持更改列的数据类型。 但是,连接到 AS 实例时不支持重命名列。

  • 2 - 如果语义模型已启用自动日期/时间功能,并且你在 Power BI Desktop 外部新建日期/时间列,则不会自动生成本地日期表。

  • 3 - 分区SourceType必须为 Calculated、M、Entity 或 CalculationGroup。 分区模式必须为 Import、DirectQuery 或 Dual。

  • 4 - 应用这些更改时,具有unappliedChanges.json的项目中的 Power BI Desktop 外部的任何表达式编辑都会丢失。

  • 如果在 Power BI Desktop 外部修改表查询表达式,重启 Power BI Desktop 时会删除表数据。

JSON 文件架构

大多数项目文件都包含 JSON 格式的元数据。 相应的 JSON 架构可用于验证和文档。

使用 JSON 架构,可以:

  • 了解可配置属性。
  • 使用代码编辑器提供的内联 JSON 验证。
  • 通过语法突出显示、工具提示和自动完成改进创作。
  • 使用外部工具了解项目元数据中受支持的属性。

使用 VS Code 将 JSON 架构映射到正在创作的文件。 Power BI Desktop 示例 Git 存储库中提供了项目文件的 JSON 架构。

注意事项和限制

  • 此功能需要高级许可证。
  • Power BI Desktop 不知道对其他工具或应用程序所做的更改。 使用外部工具所做的更改要求先重启 Power BI Desktop,然后才能显示这些更改。
  • Power BI 项目不支持敏感度标签。
  • 在服务中编辑模型时,会忽略关系图视图。
  • 另存为 Power BI 项目时,项目文件路径的最大长度为 260 个字符。
  • 在 Power BI Desktop 中,无法直接将 PBIP 保存到 OneDrive 和 SharePoint。
  • 在 Power BI Desktop 外部编辑 PBIP 文件时,应使用 UTF-8 保存这些文件,而不使用 BOM 编码。
  • Power BI 项目不支持报表语言架构。
  • Power BI Desktop 使用 CRLF 作为行尾。 为了避免差异出现问题,请通过启用 autocrlf 将 Git 配置为处理行尾。
  • Microsoft Power BI Desktop(针对 Power BI 报表服务器的优化版)当前不支持 Power BI 项目。

常见问题解答

问:查看语义模型和报表项目文件夹定义时,发现只有少数文件标记为“必需”。如果删除它们会发生什么?

答:另存为项目 (PBIP) 时,Power BI Desktop 会自动创建它们。

问:Power BI Desktop 是否知道我从外部工具或应用程序对 Power BI 项目文件所做的更改?

答: 否。 对文件所做的任何更改都需要重启 Power BI Desktop以反映这些更改。

问:将 PBIX 转换为 PBIP 后,能否将其转换回 PBIX?

答: 是的。 可以将 PBIX 另存为 PBIP,也可以将 PBIP 另存为 PBIX。

问:能否以编程方式将 PBIX 与 PBIP 相互转换?

答: 否。 只能使用 Power BI Desktop 的文件>另存为将 PBIX 与 PBIP 互相转换。

问:能否将 Power BI Desktop 项目部署到Azure Analysis Services (AAS) 或 SQL Server Analysis Services (SSAS) ?

答: 否。 AAS 和 SSAS 中不支持 Power BI Desktop 项目报表定义。 模型定义使用 Power BI 特有的增强型元数据。 对于 AAS 和 SSAS 项目,请使用 Microsoft Visual Studio 进行模型创作、Git 和 Azure DevOps 集成。