最佳实践分析器
Best Practice Analyzer (BPA) 允许你针对模型元数据定义规则,以便在开发 Power BI 或 Analysis Services 模型时推动遵循特定约定和最佳实践。
Note
Tabular Editor 3 包含一套全面的 内置 Best Practice Analyzer 规则,对新用户默认启用。
BPA 概览
BPA 概览会显示模型中当前被违反的所有已定义规则:

你也始终可以在主界面看到当前有多少条规则被违反。

单击该链接(或按 F10)会打开完整的 BPA 窗口。
Note
如果你更偏好视频导览,PowerBI.tips 上有我们团队的 Daniel Otykier 讲解 Best Practice Analyzer 的详细视频:
功能
每当模型发生更改时,Best Practice Analyzer 都会在后台扫描你的模型以发现问题。你可以在 工具 > 偏好设置 > Best Practice Analyzer 中禁用此功能。
在 TE2 和 TE3 中,BPA 窗口都支持将窗口停靠到桌面一侧,同时把主窗口放在另一侧,让你在处理模型时也能随时看到 BPA 问题。
Best Practice Analyzer 窗口会持续列出模型中所有 有效规则,以及各规则对应的违规对象。在列表内任意位置右键单击,或使用窗口顶部的工具栏按钮,即可执行以下操作:
- 管理规则...:这将打开“管理规则”界面,我们将在下文介绍。你也可以通过主界面中的“工具 > 管理 BPA 规则...”菜单打开此界面。
- 转到对象...:选择此选项,或在列表中双击某个对象,会在主界面中定位到同一对象。
- 忽略项/多项:在列表中选择一个或多个对象并选择此选项,会向所选对象应用注释,指示 Best Practice Analyzer 之后忽略这些对象。如果你误将某个对象设为忽略,请在屏幕顶部切换“显示已忽略”按钮。这样你就能取消忽略之前忽略的对象。
- 忽略规则:如果你在列表中选择了一个或多个规则,此选项会在模型级别添加注释,指示始终忽略所选规则。同样,切换“显示已忽略”按钮也能取消忽略这些规则。
- 生成修复脚本:对于有简易修复的规则(即只需在对象上设置单个属性即可解决问题),将启用此选项。点击后,会把一段 C# Script 复制到你的剪贴板中。随后,你可以将此脚本粘贴到 Tabular Editor 的高级脚本区域,并在执行以应用修复之前先进行检查。
- 应用修复:如上所述,这个选项同样适用于有简易修复的规则。它不会将脚本复制到剪贴板,而是会立即执行它。
管理最佳实践规则
如果你需要添加、删除或修改应用于模型的规则,可以使用一个专门的界面来完成。你可以通过点击 Best Practice Analyzer 窗口左上角的按钮打开它,也可以在主窗口中使用“Tools > Manage BPA Rules...”菜单项。

“管理 BPA 规则”窗口包含两个列表:上方列表表示当前已加载的规则集合。在该列表中选择一个集合后,下方列表会显示此集合中定义的所有规则。
这些集合如下:
| 集合 | 规则所在位置 | 可编辑 |
|---|---|---|
| (生效规则) | 它本身并不是一个独立的存储;而是将下方所有规则合并并去重后的集合,实际对你的模型运行的就是这组规则 | 否 |
| 内置最佳实践 | 随 Tabular Editor 3 提供;由 Tabular Editor 团队维护的一组精选规则。参见 内置 BPA 规则 | 否,但可禁用单个规则 |
| 每个外部规则文件或 URL对应一个条目 | 文件或 URL 指向的位置 | 取决于来源 |
| 当前模型中的规则 | 作为模型本身的一个注释存储,因此会随模型一起携带 | 是的 |
| 本地用户的规则 | %LocalAppData%\\TabularEditor3\\BPARules.json;仅你自己可见 |
是的 |
| 本地计算机上的规则 | %ProgramData%;此计算机上的每位用户都能看到这些规则 |
是的 |
只有在 @preferences 中打开 启用内置最佳实践规则 时,才会显示内置集合。其规则 ID 为保留项:如果你使用其中任何一个来定义自己的规则,系统将拒绝。
使用 全部启用 和 全部禁用,无需删除任何内容即可启用或禁用整个集合。
