学科分类
目录
Hadoop技术栈

数据仓库的数据模型

在数据仓库建设中,一般会围绕着星型模型和雪花模型来设计数据模型。下面我们先来理解这两种模型的概念。

1.星型模型

在数据仓库建模中,星星模型是维度建模中的一种选择方式。星型模型是以一个事实表和一组维度表组合而成,并且以事实表为中心,所有的维度表直接与事实表相连。接下来,通过一张图来描述星型模型,如图1所示。

img

图1 星型模型

在图1中,所有的维度表都直接连接到事实表上,维度表的主键放置在事实表中,作为事实表与维度表连接的外键,因此,维度表和事实表是有关联的,然而,维度表与维度表并没有直接相连,因此,维度表之间是并没有关联的。

2.雪花型模型

雪花模型也是维度建模中的另一种选择,它是对星型模型的扩展,雪花模型如图2所示。

img

图2 雪花模型

从图2中可以看出,雪花模型的维度表可以拥有其他的维度表,并且维度表与维度表之间是相互关联的。因此,雪花模型相比星型模型更规范一些。但是,由于雪花模型需要关联多层的维度表,因此,性能也比星型模型要低,所以一般不是很常用。

多学一招:什么是事实表和维度表

1.事实表

每个数据仓库都包含一个或者多个事实数据表,事实表是对分析主题的度量,它包含了与各维度表相关联的外键,并通过连接(Join)方式与维度表关联。

事实表的度量通常是数值类型,且记录数会不断增加,表规模迅速增长。例如现存在一张订单事实表,其字段Prod_id(商品id)可以关联商品维度表、TimeKey(订单时间)可以关联时间维度表等。

2.维度表

维度表可以看作用户分析数据的窗口,维度表中包含事实数据表中事实记录的特性,有些特性提供描述性信息,有些特性指定如何汇总事实数据表数据,以便为分析者提供有用的信息。

维度表包含帮助汇总数据的特性的层次结构,维度是对数据进行分析时特有的一个角度,站在不同角度看待问题,会有不同的结果。例如当分析产品销售情况时,可以选择按照商品类别、商品区域进行分析,此时就构成一个类别、区域的维度。维度表信息较为固定,且数据量小,维度表中的列字段可以将信息分为不同层次的结构级。

点击此处
隐藏目录