如何关联Power BI的PBIT文件中isKey为True的系统主键列与真实主键列?
关联Power BI PBIT中系统主键列与真实主键列的方法
操作前准备
- 先备份原始PBIT文件,避免修改失误导致数据丢失。
- 将PBIT文件后缀改为
.zip,解压后找到DataModelSchema(JSON格式文件)。
具体步骤
定位系统主键列
在DataModelSchema的tables区段中,找出所有满足isKey: true且名称为RowNumber-xxxxxx格式的系统列,记录每个表中该列的位置和相关属性。标记真实主键列
对每个表,找到业务上的真实主键列(如OrderID、ProductID这类业务标识列):- 给该列添加
isKey: true属性(如果原本没有的话); - 将对应表中系统主键列的
isKey值改为false。
- 给该列添加
修正关系定义
找到DataModelSchema中的relationships区段,每个关系条目里会包含两端列的引用(通常是列的columnId或者名称):- 将关系中关联系统主键列的部分,替换为对应真实主键列的
columnId或名称; - 确保关系的
cardinality(基数)保持原有的OneToMany(1→∞)设置不变。
- 将关系中关联系统主键列的部分,替换为对应真实主键列的
校验与重新打包
- 用JSON校验工具检查修改后的
DataModelSchema格式是否合法,避免语法错误; - 将修改后的文件放回解压后的文件夹,重新压缩为
.zip,再改回.pbit后缀。
- 用JSON校验工具检查修改后的
测试验证
打开修改后的PBIT文件,检查模型关系是否正确,执行数据刷新和简单计算,确认功能正常。
注意事项
- 若涉及大量表,可使用文本编辑器的批量替换功能,但需精准匹配表和列的对应关系,避免误改其他表的配置。
- 少数情况下,Power BI打开修改后的PBIT时可能会重新生成系统主键列,若出现此情况,需再次调整关系配置。
内容的提问来源于stack exchange,提问作者Przemyslaw Remin
相关产品推荐
相关产品推荐

