关于维度建模的一点总结

公司的数据都有一定的复杂性,处理时很容易被其影响,只有总结并掌握一个好的设计原则,才能应对纷繁复杂的业务细节。

先总结一下数据仓库工具箱中的提到的维度建模的4步过程

第一步:选择业务过程

业务过程的公共特征:
1)业务过程通常表示业务执行的活动,用行为动词表示
2)业务过程通常由某一操作型系统来支撑,如订单管理系统
3)业务过程的结果通常是建立并获得某些关键度量数据
4)业务过程包含输入及输出,由输入激活

一系列的业务过程产生一系列的事实表,通过对产生的数据进行分析,能够得出一些利于管理者为提升竞争优势而制定决策的结论。所以,想要得到一个好的设计模型,需要深入挖掘和理解数据及对应操作型系统,一方面不能被数据复杂性蒙蔽,另一方面也不能不加思索,草草了事。

第二步:确定粒度

确定粒度即精确定义事实表中的每一行表示什么,它表示的是与事实表度量有关的细节级别。在理解上可以认为粒度与主键等价。但是在进行维度模型设计时,应该使用业务术语来表示粒度。

第三步:确定维度

维度用于描述业务过程事件的度量数据。比如说,从某个维度(日期)上来看,这条事件记录(日期数据)反常,应该重点关注。常见的维度实例包括日期、产品、市场、客户、雇员、设备等。通常用于表示"WHO WHAT WHERE WHEN WHY HOW"关联的事件。

在确定维度的过程中,还是应该以满足指导业务规划决策的需求为原则,必须保证维度数据能够说明问题。

第四步:确定事实

事实即过程事件的度量。典型的事实是可加性数值。企业通过分析这些度量数据来制定决策,以便提升竞争力,这便是数据的价值。

紧紧通过数据源确定事实来建模数据是不应该的,这样很难发现数据与某些潜在条件之间可能的价值关系,所以,确定事实时需要考虑业务用户的需求和数据来源的实际情况。

下面结合零售业并根据以上四步来设计维度模型

1、选择业务过程:

对一个企业来说,在进行DW/BI项目时,首先应该选择最关键并且最易实现的业务过程。也要考虑到数据可用性与质量及获取的难易度。
就零售业务来讲,管理者更希望通过交易系统来了解顾客的购买情况。于是,这里业务过程选择POS零售交易。

2、确定粒度

通常来讲都应该确定为原子粒度,也就是最细级别的粒度。一般情况下,查询需要以精确的方式对某些细节进行切分。如果是汇总粒度,可能面临分析障碍,想想如果某个需求需要下钻怎么办?

在零售业务中,最细粒度的数据,就是POS交易的单个产品。用户可能想要知道一些情况,例如,需要知道某一商品工作日与休息日的销售差别,某日打折商品的销售情况,某种品牌的商品是否备存不足等等,这些需要对单个商品销售情况进行上卷汇总,所以这里以单个产品为粒度是很合理的。

3、确定维度

详细的粒度就已经确定了事实表的主要维度,在零售案例中指产品维度。在交易事件发生时,产品随事件直接呈现,比如说这是一瓶牙膏,价格是多少,数量。可以考虑增加其他的维度,当然增加的维度,必须能够按该维度值进行主维度聚合,并且该维度不会产生与既定粒度不符的其他事实行。

在零售业务中,除产品外、还可将日期、门店、收银员、是否促销、支付方式等纬度添加进来。

4、确定事实

事实必须要与粒度吻合,POS销售系统收集的事实包括销售数量、单价、折扣、应付额、实付额。

如一个零售事实表:
日期(日期维度)、产品(产品维度)、商店(商店维度)、促销(促销维度)、收银员(收银员维度)、支付方式(支付维度)、POS交易号、销售数量、单价、折扣价

在考虑事实的组成时,对可计算获得的事实也应考虑在内,通常将其一并存储在数据库,等于使用一点存储成本换用户计算错误的成本。

发布了95 篇原创文章 · 获赞 5 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43878293/article/details/104307324