了解 Power BI 中的数据建模:连接、关系和模式解析

发布: (2026年3月31日 GMT+8 16:15)
9 分钟阅读
原文: Dev.to

Source: Dev.to

请提供您希望翻译的正文内容,我将按照要求保留链接并进行简体中文翻译。

目录

什么是数据建模?

数据建模是将数据组织成结构化格式的过程,这些格式定义了表之间的关系。可以把它想象成设计蓝图:

  • 它定义了数据之间的连接方式
  • 它确保查询高效
  • 它提升了数据准确性和报告性能

在 Power BI 中,数据建模在数据加载之后进行,并涉及:

  • 创建关系
  • 定义表结构
  • 优化表之间的数据流动

Power BI 为您提供了两种强大的数据连接方式:

  1. Joins(在 Power Query 中) – 实际合并表
  2. Relationships(在 Model view 中) – 在不复制数据的情况下逻辑链接表

Source:

Power Query 中的 SQL 连接

连接在 Power Query 编辑器中用于合并表。以下是最重要的类型,并以 Customers ↔ Orders 数据集为例进行说明。

Venn diagram showing the different SQL joins

1. 内连接 (Inner Join)

  • 结果: 仅返回两个表中都存在的记录。
  • 示例: 只显示有下单记录的客户。

2. 左连接 (Left Outer Join)

  • 结果: 返回表的所有记录以及右表中匹配的记录。
  • 示例: 列出每位客户,即使他们尚未下单(对留存分析很有用)。

3. 右连接 (Right Outer Join)

  • 结果: 返回表的所有记录以及左表中匹配的记录。

4. 完全外连接 (Full Outer Join)

  • 结果: 返回两个表的所有记录(没有匹配的地方用 NULL 填充)。
  • 示例: 对来自两个不同系统的客户数据进行对账。

5. 左反连接 (Left Anti Join)

  • 结果: 返回左表中没有在右表中匹配的行。
  • 示例: “从未下单的客户”——非常适合精准营销。

6. 右反连接 (Right Anti Join)

  • 结果: 返回右表中没有在左表中匹配的行。
  • 示例: 缺少客户记录的订单(用于数据质量检查)。

在 Power BI 中进行连接的步骤

  1. 点击 Transform dataPower Query Editor
  2. 选中一个表 → HomeMerge Queries
  3. 选择第二个表并指定匹配列。
  4. 选择连接类型(Inner、Left Outer、Left Anti 等)。
  5. 点击 OK 并展开所需的列。

Source:

Power BI 关系

与 SQL 连接不同,Power BI 通常使用 关系——在模型视图中创建的逻辑链接。它们使模型保持轻量且性能良好。

关系类型

基数描述
1 : M(一对多)最常见(例如,一个客户 → 多个订单)
M : M(多对多)多条记录与多条记录相关;需要谨慎处理
1 : 1(一对一)较少见,通常用于拆分表

关键概念

  • 基数 – 告诉 Power BI 表之间的关系方式(一对多、多对多)。
  • 交叉过滤方向 – 控制过滤器的传播方式:
    • 单向(推荐)
    • 双向(请谨慎使用)
  • 活动关系 vs. 非活动关系
    • 活动:在可视化和 DAX 中自动使用。
    • 非活动:需要使用 USERELATIONSHIP() DAX 函数来激活(在角色扮演维度中非常有用)。

在哪里创建关系

  • 模型视图 – 拖放字段以在表之间建立关系。
  • 管理关系 – 点击 管理关系新建 并定义:
    • 基数
    • 交叉过滤方向

Power BI Model view showing active relationships with cardinality indicators

事实表 vs 维度表

良好的数据模型将数据划分为事实维度

事实表

  • 包含可度量的数据(例如,销售额、收入)。
  • 通常规模大且为事务性数据。
  • 持有链接到维度表的外键

维度表

  • 提供描述性上下文(例如,客户名称、产品类别、日期、地区)。
  • 规模较小且相对静态。
  • 持有被事实表引用的主键

黄金法则:

  • 事实告诉你发生了什么
  • 维度告诉你谁、什么、何时、何地

模式设计:星型、雪花型 与 扁平表

(此部分的内容可以在此添加——原始段落在完成前已结束。)

常见建模问题及解决方法

(此部分内容可在此添加。)

在 Power BI 中完成所有操作的地点

(此部分的内容可以在此添加。)

摘要与关键要点

(此部分的内容可在此添加。)

Fact 与 Dimension 表的可视化解释

Fact 与 Dimension 表

数据模型

1. 星型模式 (推荐)

一个中心事实表连接到非规范化的维度表。
最佳适用场景: 大多数 Power BI 项目——提供出色的性能和简洁的 DAX。

Star schema diagram
Power BI 中建模基础:事实表

2. 雪花模式

维度表已规范化(拆分为多个相关表)。
使用场景: 大型企业环境或需要严格规范化时。

Snowflake schema diagram
雪花模式结构

3. 平面表 (DLAT)

所有数据在单个表中。
使用场景: 非常小的数据集或快速原型(对大型项目不可扩展)。

角色扮演维度与常见问题

角色扮演维度出现于同一维度用于多个目的。
示例: 单个 Dim_Date 表用于订单日期发货日期交付日期

解决方案: 创建多个关系(大多数设为非活动),并在 DAX 中使用 USERELATIONSHIP() 激活相应的关系。

常见建模问题

  • 循环依赖
  • 模糊关系(表之间存在多条路径)
  • 多对多混淆
  • 事实表过宽

修复措施

  • 优先使用单向关系。
  • 对多对多关系使用桥接表。
  • 模型视图 中定期审查模型。

Power BI 步骤指南

  1. Load Data

    • 将数据集导入 Power BI。
  2. Clean Data (Power Query)

    • 删除重复项。
    • 如有需要,合并表(连接)。
  3. Create Relationships

    • 使用 Model View
    • 定义基数和方向。
  4. Optimize Schema

    • 在可能的情况下使用星型模式。
  5. Validate Model

    • 测试筛选器和可视化,确保其行为符合预期。

最后思考

Data modeling is the foundation of every powerful Power BI report. Understanding joins, relationships, and schemas lets you build models that are:

  • Accurate准确
  • Scalable可扩展
  • High‑performing高性能

As you grow in data analytics, mastering data modeling will set you apart—not just as a dashboard builder, but as someone who truly understands data.

  • Start with a Star Schema. → 从 星型模式 开始。
  • Know your SQL joins for data cleaning. → 熟悉 SQL 连接 用于数据清洗。
  • Use relationships wisely for analysis. → 明智地使用关系进行分析。
  • Keep your model simple and performant. → 保持模型 简洁高效

You now have a complete toolkit to build professional Power BI models. → 您现在拥有完整的工具箱,可构建专业的 Power BI 模型。

Happy modeling!建模愉快!

0 浏览
Back to Blog

相关文章

阅读更多 »