Power BI 中的模式与数据建模

发布: (2026年2月3日 GMT+8 01:09)
5 min read
原文: Dev.to

Source: Dev.to

数据建模是每个成功的 Power BI 解决方案的架构支柱。无论是构建高管仪表盘还是复杂的分析引擎,数据的结构完整性决定了性能、灵活性和报告的准确性。

模式主要分为两大类——StarSnowflake——遵循在分析和商业智能中广泛使用的维度建模通用实践。每种模式定义了对事实表和维度表的不同建模方式,在简洁性、性能、存储效率和建模灵活性之间进行平衡。Star Schema 通常是推荐的做法,因为它更侧重于读取性能而非写入效率。

星型模式

星型模式涉及将数据结构化为多个表:

  • 事实表 包含您想要衡量的定量属性。
  • 维度表 包含对事实表数据进行分组和分类的描述性属性。

Star schema example

事实表

事实表记录事件(事务)。重复是正常的,因为同一种事件可能会多次发生,并且相较于维度表,事实表的更改/更新更为频繁。

-- Example fact table
FactTable_Visits (
    VisitID,
    PatientID,
    DoctorID,
    FacilityID,
    DateID,
    VisitCost,
    LengthOfStay
)

维度表

维度表保存事实表中分类字段的信息,通常比事实表小。

-- Example dimension tables
Dimension_Patient (PatientID, FullName, …)
Dimension_Doctor   (DoctorID,   FullName, …)
Dimension_Facility (FacilityID, Name,     …)
Dimension_Date     (DateID,     Date,     …)

关系与基数

在 Power BI 中,关系通过将一张表中的某列与另一张表中的某列匹配来构建,将每个维度键链接到事实表中对应的键,例如:

Patient[PatientID]   → FactVisits[PatientID]
Doctor[DoctorID]     → FactVisits[DoctorID]
Facility[FacilityID] → FactVisits[FacilityID]
Date[DateID]         → FactVisits[DateID]

如果唯一性由多个字段组合定义(例如 PatientID + DateID),则创建组合键:

PatientDateKey = PatientID & "-" & DateID

并使用该单列进行表之间的关联。

基数 描述一张表中的行可以匹配另一张表中多少行:一对一、一对多、多对一或多对多。当多对多关系不可避免时,使用 桥接表(关联实体)将其转换为两个一对多关系。

雪花模式

雪花模式将维度表规范化为多个相关的表。与在星型模式中将所有内容保存在一个大型维度表中不同,描述性数据被拆分成更小的表以减少重复。之所以称为“雪花”,是因为维度会分支成子维度,形成层级结构。

结构

  • 事实表: 在特定粒度上存储可度量的事件/事务数据(数值)。
  • 维度表: 拆分为多个相连的表以表示层次结构。

示例(医疗保健):

  • 病人 → 病房 → 科室 → 医院
  • 医生 → 专业 → 科室

事实表:就诊

列名描述
VisitID就诊的唯一标识符
PatientID指向病人的外键
DoctorID指向医生的外键
WardID指向病房的外键
DateID指向日期的外键
VisitCost就诊费用
LengthOfStay就诊时长

维度表(已规范化)

Patient   (PatientID, FullName, WardID)
Ward      (WardID, WardName, DepartmentID)
Department(DepartmentID, DepartmentName, HospitalID)
Hospital  (HospitalID, HospitalName)

Doctor    (DoctorID, FullName, SpecialtyID)
Specialty (SpecialtyID, SpecialtyName, DepartmentID)

关系

关系仍主要是 一对多,但维度通过多个层级相连(例如,病人 → 病房 → 科室 → 医院)。因此,过滤路径比星型模式更长。

良好的数据建模至关重要,因为它直接决定报告的效率、准确性和可用性。结构清晰、关系明确且冗余度低的模型能够提升查询性能,使仪表板即使在数据规模扩大时也能更快加载。通过强制数据完整性约束并定义实体之间的逻辑连接,确保计算、过滤和聚合在整个系统中保持准确,防止产生误导性洞察的错误。

Back to Blog

相关文章

阅读更多 »

Power BI 中的模式与数据建模

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

Power BI 中的模式与数据建模

在 Power BI 中,schemas 和 data modelling 定义了表的结构和关联方式,以确保数据准确、性能优秀且易于分析。schema 描述……