数据仓库--DWM层

DWM(Data WareHouse Middle)数据中间层,该层会在DWD层的数据基础上,对数据做轻度的聚合操作,生成一系列的中间表,提升公共指标的复用性,减少重复加工。一般而言,针对dwm层的设计开发是建立在,积累一定数量DM和APP相关需求后,将设计到重复的指标和维度下沉到DWM的表中,因此在数仓建立初期,可能会有直接跳过DWM来开发的情况,但是随着相似的需求不断的增加,DWM的开发势在必行,而到了这种时候,我们可以以历史需求为参考,思考那些指标和维度是业务真正需要的,从而设计相应的表,避免开发大量无用的表,消耗不必要的存储和计算资源。在该层中的汇总表根据维度数量不同分为2种,一种是单一维度轻度汇总表,另一种是多维度轻度汇总表。

1.单一维度轻度汇总表

针对单一维度下的轻度汇总表。比如在电商场景下,想要了解每个城市的售卖情况。就可以以城市为主要维度开发指标,后续所有与城市相关得分交易汇总指标都可以放到该表中。在单一维度的轻度汇总表中我们可以将各种统计类型的指标都放到这一层来计算,并且设计灵活,开发完成后如果想要增加其他指标,可以直接追加比较容易。总而言之,该类表的主要特点是:维度单一,统计指标丰富,迭代灵活。

2.多维度轻度汇总表

当我们不满足于某一维度下的指标时,单一维度的汇总表可能就无法使用了。比如说每个城市下新老用户的购买情况。当然,如果通过DWD层的相关表去计算也是可以的,但是可能导致大量的重复计算,这个时候就需要一个多维度的轻度汇总表。把通用的维度和高频汇总指标整合出一张多维度轻度汇总表。以表中所有维度整体作为一个联合主键,作为该表的最细粒度,进行统计。但是由于维度较多,如果放置大量指标,或计算比较复杂的指标进来,计算负担就会增大很多。

通过多维度轻度汇总表我们可以使用group by 上卷任意维度进行计算,获取相应的多维度数据,但是注意汇总指标必须是可累加指标,否则当我们选择多个维度累加时就会导致数据不准确,例如用户数和订单数,小A同学下了两单B和C,我们想统计购买B和C的用户数,此时应该是只有1个,但是我们上卷时会有1+1=2,就会出现重复统计的问题而订单数就不会出现这样的问题这样就可以供具有一定SQL能力的分析人员进行探索性分析。

但是如果需要沉淀多维度下的半累加型统计指标或者不可累加的指标类型时,就可以建立一张多维度的cube表。将常用的维度组合统计指标整合成为多维度的cube表。这里涉及到增加一个维度我们整体的数据量就会翻倍。因此在设计表时,需要注意一定只要将高频的维度组合。总而言之,该类表的主要特点是:维度丰富,指标单一,迭代复杂

3.总结

DWM层作为数仓中的中间层,主要作用就是提升公共指标的复用性,减少重复加工。单维度下的轻度汇总表维度单一,统计指标丰富,迭代更灵活;多维度的轻度汇总表,维度丰富,统计指标有限,迭代相对复杂,后续可能经常涉及到调优。

你可能感兴趣的:(big,data,数据挖掘,数据仓库)