关系故障排除指南
本文面向使用 Power BI Desktop 的数据建模者。 它指导你如何排查在开发模型和创建报表时可能会遇到的具体问题。
注意
本文不涵盖对模型关系的介绍。 如果你对模型关系、其属性或配置方法并非完全熟悉,建议先阅读 Power BI Desktop 中的模型关系一文。
此外,还应了解星型架构设计,这一点也很重要。 有关详细信息,请参阅了解星型架构和 Power BI 的重要性。
疑难解答
如果报表视觉对象配置为使用两个(或更多)表中的字段,但它不显示正确的结果(或任何结果),那么问题可能与模型关系有关。
在这种情况下,需要遵循下面的常规故障排除清单。 可以逐个执行清单中的步骤,直到确定一个或多个问题所在。
- 将视觉对象切换为表或矩阵,或打开“查看数据”窗格:在可以看到查询结果的情况下,更容易排查问题。
- 如果查询结果为空,请切换到“数据”视图:验证表是否已加载数据行。
- 切换到“模型”视图:在其中可以轻松查看关系,并快速确定关系属性。
- 验证表之间是否存在关系。
- 验证基数属性是否已正确配置:如果“多”端列当前包含唯一值,且已被错误地配置为“一”端,那么基数属性可能不正确。
- 验证关系是否处于活动状态(实线)。
- 验证筛选器方向是否支持传播(解释箭头)。
- 验证是否关联了正确的列:选择关系或将光标悬停在上方可显示关联列。
- 验证关联列的数据类型是否相同或至少兼容:可以将文本列与整数列关联,但筛选器找不到任何要传播的匹配值。
- 切换到“数据”视图,并验证能否在关联列中找到匹配值。
故障排除指南
下面是问题列表及其可能的原因。
问题 | 可能的原因 |
---|---|
视觉对象不显示结果 | • 模型尚未加载数据。 • 筛选器上下文中没有数据。 • 已强制执行行级别安全性 (RLS)。 • 表之间不传播关系:请遵循上述清单。 • 已强制执行 RLS,但未启用传播双向关系:请参阅结合使用行级别安全性 (RLS) 与 Power BI Desktop。 |
视觉对象对每个分组显示相同的值 | • 关系不存在。 • 表之间不传播关系:请遵循上述清单。 |
视觉对象显示结果,但结果不正确 | • 未正确设置视觉对象。 • 度量计算逻辑不正确。 • 需要刷新模型数据。 • 源数据不正确。 • 关系列未正确关联(例如,ProductID 列映射到 CustomerID)。 • 这是两个 DirectQuery 表之间的关系,关系的“一”端列包含重复值。 |
出现 BLANK 分组或切片器/筛选器项,但源列不包含 BLANK | • 这是一种常规关系,“多”端列包含的值不存储在“一”端列中:请参阅 Power BI Desktop 中的模型关系(常规关系)。 • 这是常规一对一关系,关联列包含 BLANK—请参阅 Power BI Desktop 中的模型关系(常规关系)。 • 非活动关系“多”端列存储 BLANK,或包含的值不存储在“一”端中。 |
视觉对象缺少数据 | • 应用的筛选器不正确/不符合预期。 • 已强制执行 RLS。 • 这是一种有限关系,关联列包含 BLANK,或存在数据完整性问题:请参阅 Power BI Desktop 中的模型关系(有限关系)。 • 这是两个 DirectQuery 表之间的关系,关系配置为假定引用完整性,但存在数据完整性问题(关联列中的值不匹配)。 |
未正确强制执行 RLS | • 表之间不传播关系:请遵循上述清单。 • 已强制执行 RLS,但未启用传播双向关系:请参阅结合使用行级别安全性 (RLS) 与 Power BI Desktop。 |
相关内容
有关本文的详细信息,请参阅以下资源:
- Power BI Desktop 中的模型关系
- 是否有任何问题? 尝试咨询 Power BI 社区
- 建议? 提出改进 Power BI 的想法