什么是维度建模?

17 Mar 2025 | 4 分钟阅读

维度建模通过立方体操作来表示数据,使 OLAP 数据管理更适合逻辑数据表示。维度建模的概念是由 Ralph Kimball 开发的,它由 “事实”“维度” 表组成。

在维度建模中,事务记录被分成 “事实”(通常是数值事务数据)或 “维度”(提供事实背景的参考信息)。例如,销售事务可以分解成诸如订购产品数量和产品支付价格之类的事实,以及诸如订单日期、用户名、产品编号、订单发货地点和账单邮寄地点,以及负责接收订单的销售人员等维度。

维度建模的目标

维度建模的目的是

  1. 生成易于最终客户理解和编写查询的数据库架构。
  2. 最大限度地提高查询效率。它通过最小化表及其之间的关系来实现这些目标。

维度建模的优势

以下是维度建模的优点

维度建模很简单:维度建模方法使仓库设计人员能够创建业务客户可以轻松持有和理解的数据库模式。无需大量培训如何阅读图表,并且不同数据元素之间没有复杂的关系。

维度建模促进数据质量:星型模式使仓库管理员能够对数据仓库强制执行引用完整性检查。由于事实信息键是其关联维度的基本要素的串联,因此如果相应的维度记录得到适当描述并且也存在于数据库中,则会主动加载事实记录。

通过强制外键约束作为引用完整性检查的一种形式,数据仓库 DBA 增加了针对损坏仓库数据的一道防线。

可以通过聚合实现性能优化:随着数据仓库规模的增加,性能优化成为一个紧迫的问题。必须等待数小时才能获得查询响应的客户很快就会对仓库感到沮丧。聚合是优化查询性能的最简单方法之一。

维度建模的缺点

  1. 为了维护事实和维度的完整性,从各种运营系统加载数据仓库的记录很复杂。
  2. 如果采用维度技术的组织更改其开展业务的方式,修改数据仓库操作将非常困难。

维度建模的元素

事实

它是一组相关的数据项,由度量和上下文数据组成。它通常代表业务项目或业务交易。

维度

它是一组描述一个业务维度的的数据。维度决定了事实的上下文背景,它们是执行 OLAP 的框架。

衡量

它是事实的数值属性,表示业务相对于维度的表现或行为。

考虑到关系上下文,维度建模中使用了两个基本模型

  • 星型模型
  • 雪花模型

星型模型是维度模型的底层结构。它有一个宽泛的中心表(事实表)和一组较小的表(维度),它们以径向设计排列在主表周围。雪花模型是一个或多个维度分解的结论。

事实表

事实表用于业务中的数据事实或度量。事实是公司感兴趣的数值数据元素。

事实表的特征

事实表包括我们测量的数值。例如,事实值为 20 可能意味着已售出 20 个小部件。

每个事实表都包括与关联维度表的键。这些被称为事实表中的外键。

事实表通常包含少量的列。

与维度表相比,事实表包含大量行。

维度表

维度表建立了事实的上下文。维度表存储描述事实的字段。

维度表的特征

维度表包含有关事实的详细信息。例如,这使业务分析师能够更好地理解数据及其报告。

维度表包含有关事实表中数值的描述性数据。也就是说,它们包含事实的属性。例如,用于营销分析功能的维度表可能包括诸如时间、营销区域和产品类型之类的属性。

由于维度表中的记录未规范化,因此它通常包含大量的列。维度表包含的信息行比事实表少得多。

维度表中的属性用作文档或查询结果显示的行和列标题。

示例:一个城市和州可以在事实表中查看商店摘要。可以按品牌、颜色等查看项目摘要。客户信息可以按姓名和地址查看。

What is Dimensional Modeling

事实表

时间 ID产品 ID客户 ID已售单位
41721
82132
8411

在此示例中,事实表中的“客户 ID”列是与维度表连接的外键。通过遵循链接,我们可以看到事实表的第 2 行记录了客户 3 Gaurav 在第 8 天购买了两个项目的事实。

维度表

客户 ID名称性别 (Gender)收入教育地区
1Rohan男性 (Male)234
2Sandeep男性 (Male)351
3Gaurav男性 (Male)173

层级结构

层次结构是一个有向树,其节点是维度属性,其弧对维度属性团队之间的多对一关联进行建模。它包含一个维度,位于树的根部,以及定义它的所有维度属性。