今天看到别人的一篇文章感觉不错引用一下。
Ralph Kimball在《The Data Warehouse
Toolkit》一书中,将维度建模的过程归纳为四个步骤:
确定业务流程(Select the business process to
model)
确定分析粒度(Declare the grain of the business process)
确定维度(Choose the
dimensions that apply to each fact table row)
确定度量(Identify the numeric facts
that will populate each fact table row)
一.确定业务流程
这里的流程指的是,公司中的一个具体的商业活动,并且其数据已经通过某种系统收集到源系统中,典型的比如:采购系统,订单系统,出货系统,库存系统等等,这些业务系统已经运行在企业的OLTP数据库上。数据仓库就是在这些OLTP的源数据的基础上来构建。建模应当一步一步来,一个流程一个流程的清理,通过倾听客户的需求,可以确定各个流程建模的优先级。
要注意的是,这里的流程是业务流程,而不是部门流程。不能说这个A部门有个采购系统,B部门也有个采购系统,然后就针对A部门和B部门分别建模。而应该针对采购流程来建模,各部门的采购系统的数据通过ETL汇入到数据仓库的采购模型当中。
二.确定粒度
在选择了某个具体的业务流程后,第二步要做的就是确定粒度。所谓粒度,就是指事实表中存储的数据的汇总程度,比如一个销售系统,事实表中如果存储的是具体的每一笔销售记录,则说它的粒度比较小,如果存储的是每种商品的日销售总额的记录,则粒度相对较大。粒度的选择,决定了数据仓库的规模,也影响着分析查询的计算量。
在数据仓库构建中,可以分两层,一层叫做ODS(Operational Data
Storage),存储粒度较小的细节数据,数据仓库则在ODS的基础上,存储粒度较大的汇总数据。
三.确定维度
维度就是分析的角度。比如一个销售系统,从时间的角度,分析一个月那一天的销售量最好?一年中哪一个月的销售量最好?这样就有一个时间维度。从商品的角度,哪一种商品的利润最大?哪一种商品的销量最大?这样就有一个商品的维度。
四.确定度量
度量就是事实表中记录的数字。比如销售系统,事实表按每天的粒度设计,一条数据就代表某种商品一天的销售量,这个销售量就是度量,另外还有商品单价,一天销售总价,等等。度量是分析的基础,简单点讲,数据仓库的一个目的,就是通过不同的维度,对度量进行不同的聚合,得到各种报表。
找了一下资料:大家有兴趣可以看看Ralph Kimball写的:
The Data Warehouse
Toolkit