大数据学习(十五)维度建模步骤以及实例

一、维度建模概述(kimball)

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

二、如何进行维度建模

选择业务过程→声明粒度→确认维度→确认事实

1. 选择业务过程

现在我们需要对营销派券业务进行建模,一条业务线对应一张事实表。

2.声明粒度

数据粒度指数据仓库的数据中保存数据的细化程度或综合程度的级别。
声明粒度意味着精确定义事实表中的一行数据表示什么,应该尽可能选择最小粒度,以此来应各种各样的需求。

比如本篇案例中
派券事实表中一行数据表示的是一行派券记录。

3.确认维度

维度的主要作用是描述业务事实,一般为“谁,何处,何时”等信息。
确定维度的原则是:后续需求中是否要分析相关维度的指标。

例如,需要统计的常见维度如下:a.时间维度:什么时间派的券,什么时间使用的券。b.地区维度,渠道维度,比如哪个渠道派奖比较多,哪个地区券使用率高。

4.确认事实

指的是业务中的度量值(次数、个数、件数、金额,可以进行累加),比如此案例的派券次数、券金额、券成本等等。

三、维度建模的三种模型

1.星形模式:以事实表为中心,所有的维度表直接连在事实表上,最简单最常用的一种

大数据学习(十五)维度建模步骤以及实例_第1张图片

2.雪花模式:雪花模式的维度表可以拥有其他的维度表,这种不易维护

 大数据学习(十五)维度建模步骤以及实例_第2张图片

3.星座模型:基于多张事实表,而且共享维度信息,即事实表之间可以共享某些维度表

大数据学习(十五)维度建模步骤以及实例_第3张图片

 

 

你可能感兴趣的:(学习,java,开发语言)