关系

已完成

关系很重要,特别是对数据来说。

关系使用户能够查询多个表中的数据。 只有借助多个表之间的匹配字段,此方法才能起作用。 Power BI 将此字段称为关系字段。

屏幕截图显示 Power BI 中具有多个关系字段的关系视图。

视频:高级编辑器演示

在进一步了解关系字段的重要性之前,你需要了解有关维度建模的详细信息,这将帮助你更好地构造关系模型。 现在,你应该已经具备在模型上创建雪花分支的实践经验。 还应了解维度表和事实数据表以及规范化表和非规范化表之间的差异。

如果你还没有机会了解这些维度建模概念,请参阅以下各节复习一下。

雪花型架构

雪花型模型(或者称为雪花型架构)是指表之间出现了很多个关系,并且你必须通过多个关系才能从一个表连接到另一个表。 此模型通常类似于雪花形状,包含事实数据表,通常位于中间。 一个表连接到多个维度表。

雪花型模型背后的原则是将维度表规范化,同时删除低基数属性并创建它们自己的表。 以下屏幕截图显示了雪花型模型的示例。

屏幕截图显示 Power BI Desktop 中的雪花型架构示例。

事实数据表

之前的架构只有一个事实数据表:“销售事实”。 此“销售事实”表包含度量值或量化属性,例如“折扣”字段、“数量”字段和“总计”字段。 “销售事实”表还包含一些关系字段(或外键),这些关系字段使用户能够引用架构中的其他维度表。 例如,如果需要找出某家客户的总销售额,则需要在“销售事实”表和“客户维度”表中使用“客户 ID”字段。

维度表

雪花型架构包含七个维度表:

  • 时间维度
  • 产品维度
  • 产品类别维度
  • 客户维度
  • 城市维度
  • 员工维度
  • 部门维度

每个维度表都包含唯一的描述性属性,这些属性为“销售事实”表中的度量值提供了更多意义,例如“客户 ID”、“员工 ID”和“产品 ID”。 使用这些字段,可以找出不同客户购买最多的产品。

规范化表

规范化表是按照一系列范式创建的表。 此方法可减少数据冗余并改善数据完整性。 在同一雪花型模型中,维度表中不存在数据冗余。 每个维度表都有其自己的唯一属性。

特定于 Power BI 的关系是所创建的表之间的链接或信道。 这些链接或信道由你控制。 你可以控制关系和字段之间的方向。

关系类型

有三种关系类型,分别是一对一 (1:1)、一对多 (1:*) 和多对多 (*:*)。

  • 一对一关系是指一个表中的每个记录仅与另一个表中的一个记录相关。 例如,在雪花型模型中,每家客户只有一个客户 ID。

  • 一对多关系是指一个表中的记录可与另一个表中的零个、一个或多个记录相关。 例如,在雪花型模型中,一个客户可以有多个地址。 也许客户已经移动多次,或者客户使用了不同地址进行了购买。

  • 多对多关系是指一个表中的零个、一个或多个记录可与另一个表中的零个、一个或多个记录相关。 对于之前的雪花型模型,客户可以购买多个产品,并且许多客户可以购买产品。

Tableau 与 Power BI 比较

通常,Tableau 使用一个大型规范化表。 你可以提前设置联接,但联接会扩大表,使表变大且变长。 结果将生成一个非规范化表。 在 2018 年之前,如果要执行伪维度建模,则完成该任务的唯一方法是通过数据混合。

如果维度表中有一个 ID 字段,并且有一个广泛的非规范化表,则可以通过 Tableau 所谓的“关系”将它们链接起来。这种关系将在 Tableau Desktop 的维度窗格中创建一个链接图标,该图标指示数据混合中将使用哪些字段。 虽然此功能很方便,但最终不是 Tableau 社区的常见做法。