Power BI 中的模式和数据建模:适合初学者的分步指南

发布: (2026年2月2日 GMT+8 14:32)
9 min read
原文: Dev.to

Source: Dev.to

要为您提供准确的翻译,请提供您希望翻译的完整文本(除代码块、URL 和源链接外)。您可以直接粘贴文章内容,我将按照要求保持原始格式、Markdown 语法和技术术语,仅翻译正文部分为简体中文。

介绍

数据建模是使用 Power BI 时 最重要的技能 之一。即使你的数据本身是正确的,糟糕的数据建模也会导致报表运行缓慢、数字错误以及视觉效果混乱。

本文将 从零开始 解释 Power BI 中的模式和数据建模工作原理。内容编写旨在让初学者 一步一步点击点击 地构建出正确的模型。

你将学习到:

  • Power BI 中数据建模的含义
  • 事实表 vs. 维度表
  • 星型模式和雪花模式
  • 关系(多对一、基数、过滤方向)
  • 为什么良好的建模能提升性能和准确性
  • 如何在 Power BI 中创建干净的数据模型(一步一步)

Power BI 中的数据建模是什么?

数据建模 是以下过程:

  • 组织表格
  • 定义表格之间的关系
  • 构建数据结构,使 Power BI 能高效分析

将数据建模想象成 设计房屋的基础——如果基础薄弱,所有上层建筑都会出现问题。

为什么良好的数据建模至关重要?

  • 性能 – 设计良好的模型加载更快,对查询的响应更迅速
  • 准确性 – 正确的关系确保计算和聚合结果准确
  • 可扩展性 – 良好的模型能够处理不断增长的数据量而不出现性能下降
  • 可维护性 – 简洁的模型更易于更新和排查问题
  • 用户体验 – 快速、准确的报表有助于做出更好的业务决策

在 Power BI 中,数据建模主要在以下位置进行:

  • 模型视图 – 关系图
  • 数据视图 – 表结构

事实表和维度表

事实表

事实表是数据模型中的核心表,包含关于业务流程的定量数据(度量)。可以把它们看作“发生了什么”表。

事实示例

  • 销售额
  • 销售数量
  • 利润
  • 产量

事实表的特征

  • 包含数值度量(销售额、数量、成本、利润)
  • 通常有很多行(可以包含数百万记录)
  • 包含指向维度表的外键
  • 表示业务事件或交易
  • 通常列较少(列宽窄),但行很多(行长)

示例:Sales_Fact

ColumnDescription
SaleID主键
DateKey指向日期维度的外键
ProductKey指向产品维度的外键
CustomerKey指向客户维度的外键
StoreKey指向门店维度的外键
Quantity度量(销售单位)
SalesAmount度量(收入)
Cost度量(销售成本)
Profit度量(销售额 – 成本)

Sales Fact Table Example

维度表

维度表存储描述性信息(上下文)。

维度示例

  • 日期
  • 产品
  • 客户
  • 位置

维度表的特征

  • 包含文本或类别
  • 小于事实表
  • 用于过滤和分组

示例:Product_Dimension

Product Dimension Example

什么是 Schema?

schema 是定义事实表和维度表如何连接的结构。

在 Power BI 中,最常见的两种 schema 是:

  • Star schema ⭐ (recommended)
  • Snowflake schema ❄️

Source:

星型模式(强烈推荐)

什么是星型模式?

星型模式具有:

  • 一个中心事实表
  • 多个直接连接到它的维度表

它看起来像一个星形。

Star Schema Diagram

为什么星型模式是 Power BI 的最佳选择

  • ✔ 性能更快
  • ✔ DAX 公式更简洁
  • ✔ 聚合更准确
  • ✔ 易于理解

Power BI 的引擎(VertiPaq)针对星型模式进行了优化

步骤指南:在 Power BI 中创建星型模式

步骤 1 – 加载数据

  1. 打开 Power BI Desktop
  2. 点击 Home 选项卡 → Get Data
  3. 选择你的数据源(Excel、CSV、SQL 等)。
  4. 点击 Load

步骤 2 – 在数据视图中检查表

  1. 点击左侧面板的 Data 图标(表格)。
  2. 打开每个表并识别:
    • 事实表(包含数值列)
    • 维度表(包含描述性列)

步骤 3 – 转到模型视图

  • 点击左侧的 Model 图标(图表)。
  • 你会看到每个表以盒子的形式显示。

步骤 4 – 创建关系

  1. Product_Dim 拖动 ProductID
  2. 将其放到 Sales_Fact 中的 ProductID 上。
  3. Create Relationship 窗口中设置:
    • Cardinality(基数): One to Many (1:)*
    • Cross filter direction(交叉过滤方向): Single
    • 确保维度表位于 1 端。
  4. 点击 OK

对其他维度(日期、客户、地点)重复相同的过程。

雪花模式

什么是雪花模式?

snowflake schema 是一种变体,其中维度表被规范化并连接到其他维度表,形成“雪花”模式。

为什么 … (原始来源中此部分被截断)

注意: 原始内容在 “Why S” 之后突然结束。应补充本节的其余部分,以完整讨论雪花模式。

Snowflake 在 Power BI 中不太理想

  • ❌ 性能较慢
  • ❌ 关系更复杂
  • ❌ DAX 公式更难写

Power BI 在维度是 去规范化(扁平化)时表现更好。

最佳实践: 在可能的情况下将雪花模型转换为星型模型。

雪花模型 vs. 星型模型示意图

理解 Power BI 中的关系

基数

  • 一对多 (1:*) – 最常见且推荐
  • 多对多 – 除非绝对必要,否则避免

过滤方向

  • 单向 – 推荐
  • 双向 – 可能导致错误的总计

规则: 过滤应从 维度 → 事实 流向。

为什么良好的数据建模至关重要

性能

差的模型好的模型
• 可视化缓慢• 报告快速
• 高内存使用• 计算高效

准确性

不良建模可能导致:

  • 双重计数
  • 总计错误
  • 误导性报告

正确的建模可确保:

  • 准确的聚合
  • 可靠的业务决策

常见初学者错误(避免这些)

  • ❌ 多个事实表直接相连
  • ❌ 到处都是多对多关系
  • ❌ 不必要的雪花模型
  • ❌ 将事实表用作过滤器

✔ 始终以星型模式的思维进行设计。

结论

数据建模在 Power BI 中 不是可选的——它是必不可少的。

总结:

  • 对数字使用 事实表
  • 对描述使用 维度表
  • 构建 星型模式
  • 使用 一对多关系
  • 将过滤方向保持为 单向

当您的数据模型干净整洁时,其他所有工作都会变得更容易——包括 DAX、可视化和性能。

Back to Blog

相关文章

阅读更多 »

Power BI 中的模式与数据建模

什么是模式?Power BI 中的数据建模是什么?数据建模的核心概念 Star Schema Power BI 的黄金标准。它由一个中心事实表组成……