数据仓库(03)数仓建模之星型模型与维度建模

2022年 12月 23日 2323点热度 1人点赞 0条评论
                           

  维度建模是一种将数据结构化的逻辑设计方法,也是一种广泛应用的数仓建模方式,它将客观世界划分为度量和上下文。度量是常常是以数值形式出现,事实周围有上下文包围着,这种上下文被直观地分成独立的逻辑块,称之为维度。它与实体-关系建模有很大的区别,实体-关系建模是面向应用,遵循第三范式,以消除数据冗余为目标的设计技术。维度建模是面向分析,为了提高查询性能可以增加数据冗余,反规范化的设计技术。

上面的解释看起来是比较抽象,一下子可能不是很容易懂。我们先来了解一下事实和维度,基于上面再来分析一下。

  事实,表示的是某一个业务度量。比如说订单的金额,订单中出售商品的数量。维度模型中的事实表存放的就是这些业务度量,也就是业务过程中事件的性能度量结果。《数据仓库工具箱》中有这样一段描述:

物理世界的每一个度量事件与对应的事实表行具有一对一的关系,这思想是维度建模的基本原则,其他的工作都是以此为基础建立的。

  事实就是一个具体发生的业务过程的状态,以及用来描述该具体的业务过程的指标构成的一行记录,多行记录就构成一张事实表。比如一个订单就是一个事实,而多个事实聚集而成的一张二维表就是事实表

  维度,维度是事实不可或缺的组成部分,维度就是事实的上下文,也就是用来描述事实发生时某个方面对应的状态。像是何时、何地、何人、发生了什么、怎么做、为什么这么做等。举个具体的例子,比如在18点,小明下了一个苹果的订单,那么在这里下了订单是事实,18点是时间维度,小明是用户维度,苹果是商品维度,通过这些谓词,我们就可以了解具体发生了什么,这个也是我们多为分析的一个基本朴素的思想。这些一个一个具体的维度聚集而成的二维表就是维度表,一般维度都是有限的。

  下面是一个具体的维度建模的例子,以订单为例。

基于上面的理解,我们就可以比较好的了解我们的维度建模了。这里我给出我个人的描述,这样会比较好理解一些。

维度建模,就是将我们的每一个业务过程,拆分为事实表和维度表,事实表对应着具体的指标度量,维度表对应着事实的描述,状态,也就事实对应的环境。

  这种结构,将事实表置于中心,多个维度围绕着事实,如上图,这种结构呈现星状,所以这种模型,就叫星型模型。多个星型模型聚集在一起就叫星座模型。

  从多个维度分析数据,也就叫做多维立方体分析,这里就不做过多介绍,后续在其他文章中介绍。

  下面这个图可以用于理解星型模型与多维立方体分析。

需要数据仓库资料可以点击这个领取数据仓库(13)大数据数仓经典最值得阅读书籍推荐

参考资料:

  1. 数据仓库(01)什么是数据仓库,数仓有什么特点
  2. 数据仓库(02)数仓、大数据与传统数据库的区别
  3. 数据仓库(03)数仓建模之星型模型与维度建模
  4. 数据仓库(04)基于维度建模的数仓KimBall架构
  5. 数据仓库(05)数仓Kimball与Inmon架构的对比
  6. 数据仓库(06)数仓分层设计
  7. 数据仓库(07)数仓规范设计
  8. 数据仓库(08)数仓事实表和维度表技术
  9. 数据仓库(09)数仓缓慢变化维度数据的处理
  10. 数据仓库(10)数仓拉链表开发实例
  11. 数据仓库(11)什么是大数据治理,数据治理的范围是哪些
  12. 数据仓库(12)数据治理之数仓数据管理实践心得
  13. 数据仓库(13)大数据数仓经典最值得阅读书籍推荐

张飞的猪

选择远方,风雨兼程,专注于web3.0及其前沿的技术。

文章评论