Power BI Desktop 中的外部工具

Power BI 有一个充满活力的社区,参与者包括商业智能专业人员和开发人员。 社区参与者创建免费的工具来使用 Power BI 和 Analysis Services API 进行扩展,并与 Power BI Desktop 的数据建模和报告功能进行集成。

使用“外部工具”功能区,可以轻松访问在本地安装并已向 Power BI Desktop 注册的外部工具。 从“外部工具”功能区启动时,Power BI Desktop 会将其内部数据模型引擎实例的名称和端口号,以及当前模型名称传递给该工具。 然后,该工具会自动连接,提供无缝连接体验。

Screenshot of the external tools ribbon in Power BI Desktop.

外部工具通常可分为以下几类:

语义建模 - 开源工具(如 DAX Studio、ALM Toolkit、Tabular Editor 和 Metadata Translator)会为特定数据建模场景(如 Data Analysis Expressions (DAX) 查询、表达式优化、应用程序生命周期管理 (ALM) 和元数据翻译)扩展 Power BI Desktop 功能。

数据分析 - 用于将只读模型连接到查询数据的工具,它还执行其他分析任务。 例如,某个工具可能会启动 Python、Excel 和 Power BI Report Builder。 该将客户端应用程序连接到 Power BI Desktop 中的模型以供测试和分析,而不必先将 Power BI Desktop (pbix) 文件发布到 Power BI 服务。 另外,用于记录 Power BI 语义模型的工具也属于此类别。

其他 - 某些外部工具根本不会连接到模型,而是扩展 Power BI Desktop 以提供有用的提示,并使有用的内容更易于访问。 例如,PBI.tips 教程、sqlbi.com 中的 DAX Guide 和 PowerBI.tips 产品业务运营社区工具使大量外部工具的安装变得更加容易。 这些工具还有助于轻松向 Power BI Desktop 注册,包括 DAX Studio、ALM Toolkit、Tabular Editor 等。

自定义 - 通过将 *.pbitool.json 文档添加到 Power BI Desktop\External Tools 文件夹来集成自己的脚本和工具。

在安装外部工具之前,请记住以下注意事项:

  • 适用于 Power BI 报表服务器的 Power BI Desktop 不支持外部工具。

  • 外部工具由外部的第三方参与者提供。 Microsoft 不为外部工具提供支持或文档。

外部工具的数量较多。 下面是一些最热门的外部工具,且归属于每个 Power BI Desktop 数据建模者工具箱:

工具 说明
PowerBI.tips - 业务运营 一个易于使用的部署工具,可用于将外部工具扩展添加到 Power BI Desktop。 业务运营目标是为安装所有最新版本的外部工具提供一站式服务。 若要了解详细信息,请转到 PowerBI.tips - 业务运营
表格编辑器 通过模型创建器可以使用直观的轻型编辑器轻松生成、维护和管理表格模型。 层次结构视图显示表格模型中的所有对象,这些对象是使用显示文件夹整理的,它们支持多选属性编辑和 DAX 语法突出显示。 若要了解详细信息,请转到 tabulareditor.com
DAX Studio 一种可用于 DAX 创作、诊断、性能优化和分析的功能丰富的工具。 功能包括对象浏览、集成跟踪、包含详细统计信息的查询执行情况分解、DAX 语法突出显示和格式设置。 若要了解最新信息,请转到 GitHub 上的 DAX Studio
ALM 工具包 针对 Power BI 模型和语义模型的架构比较工具,用于应用程序生命周期管理 (ALM) 方案。 可以使用它跨环境执行简单部署,并保留增量刷新历史数据。 还可以区分和合并元数据文件、分支和存储库。 还可以在语义模型之间重用共同定义。 若要了解最新信息,请转到 alm-toolkit.com
Metadata Translator 简化 Power BI 模型和语义模型的本地化。 该工具可以自动翻译字幕、说明,以及显示表、列、度量值和层次结构的文件夹名称。 该工具使用 Azure 认知服务的机器翻译技术进行翻译。 你还可以通过逗号分隔值 (.csv) 文件导出和导入翻译,以便在 Excel 或本地化工具中进行批量编辑。 若要了解最新信息,请转到 GitHub 上的 Metadata Translator

外部数据集成体系结构

Power BI Desktop (pbix) 文件包含多个组件,包括报表画布、视觉对象、模型元数据以及从数据源加载的任何数据。 当 Power BI Desktop 打开 pbix 文件时,它会在后台启动 Analysis Services 进程来加载模型,从而使数据建模功能和报表视觉对象可以访问模型元数据并查询模型数据。

当 Power BI Desktop 启动 Analysis Services 作为其分析数据引擎时,它会动态分配一个随机端口号。 它还以全局唯一标识符 (GUID) 的形式使用随机生成的名称加载模型。 由于这些连接参数会随每个 Power BI Desktop 会话而改变,因此外部工具很难自行发现要连接到的正确的 Analysis Services 实例以及模型。 外部工具集成解决了这个问题:从“外部工具”功能区启动外部工具时,它允许 Power BI Desktop 将 Analysis Services 服务器名称、端口号和模型名称作为命令行参数发送给工具,如以下示意图所示。

Diagram of the external tool architecture.

有了 Analysis Services 服务器名称、端口号和模型名称,该工具就可以使用 Analysis Services 客户端库来建立与模型的连接、检索元数据以及执行 DAX 或 MDX 查询。 每当外部数据建模工具更新元数据时,Power BI Desktop 就会同步这些更改,使 Power BI Desktop 用户界面能准确地反映模型的当前状态。 请注意,同步功能有一些如后所述的限制。

数据建模操作

连接到 Power BI Desktop Analysis Services 实例的外部工具可更改(将操作写入)数据模型。 然后,Power BI Desktop 将这些更改与报表画布同步,以便在报表视觉对象中显示。 例如,外部数据建模工具可以覆盖度量值的原始格式字符串表达式,并编辑包括 KPI 和详细信息行在内的任何度量值属性。 外部工具还可以为对象和行级别安全性创建新角色,并添加翻译。

支持的写入操作

支持写入操作的对象:

对象 连接到 AS 实例
1
计算表
计算列
关系
度量值
模型 KPI
计算组
透视
翻译版本
行级别安全性 (RLS)
对象级安全性 (OLS)
批注
M 表达式

1 - 使用外部工具连接到 AS 实例时,支持更改列的数据类型,但不支持重命名列。

Power BI Desktop 项目文件就受支持的写入操作提供了更广泛的范围。 对于不支持使用外部工具连接到 Power BI Desktop Analysis Services 实例来执行写入操作的对象和操作,可能能够通过编辑 Power BI Desktop 项目文件实现。 若要了解详细信息,请参阅 Power BI Desktop 项目 - 模型创作

数据建模限制

所有表格对象模型 (TOM) 元数据都只能以只读方式访问。 由于 Power BI Desktop 必须与外部修改保持同步而使写入操作受到限制,因此不支持以下操作:

  • 受支持的写入操作没有涵盖的任何 TOM 对象类型(例如表和列)。
  • 编辑 Power BI Desktop 模板 (PBIT) 文件。
  • 报表级别翻译或数据级别翻译。
  • 尚不支持重命名表和列
  • 将处理命令发送到在 Power BI Desktop 中加载的语义模型

注册外部工具

外部工具在 C:\Program Files (x86)\Common Files\Microsoft Shared\Power BI Desktop\External Tools 文件夹中包含 .pbitool.json 注册文件时,会向 Power BI Desktop 进行注册。 如果注册了某个包含图标的工具,该工具会出现在“外部工具”功能区中。 某些工具(如 ALM 工具包和 DAX Studio)在安装时会自动创建注册文件。 但是,许多工具(如 SQL Profiler)通常不会执行该操作,因为它们所拥有的安装程序不包括为 Power BI Desktop 创建注册文件。 无法自动向 Power BI Desktop 注册的工具可通过创建 *.pbitool.json 注册文件手动进行注册。

若要了解详细信息(包括 json 示例),请参阅注册外部工具

禁用“外部工具”功能区

“外部工具”功能区默认启用,但是可以使用“组策略”或直接编辑 EnableExternalTools 注册表项来将其禁用。

  • 注册表项:Software\Policies\Microsoft\Power BI Desktop\
  • 注册表值:EnableExternalTools

值为 1(十进制)时启用“外部工具”功能区,这也是默认值。

值为 0(十进制)时禁用“外部工具”功能区。