在SN做仓库项目,根据自己负责的内容及SN的一些规范等,将这一阶段的模型工作进行一个思考和总结。
一、仓库字段、表等命名的规范
数据仓库建设目的,其中重要的一个方面就是建立统一的全局视图;表、字段等的规范命名就是仓库全局视图一个方面的体现。
在进行规范命名的时候,一般会根据《数据建模字段简写命名规范.xlsx》来进行。《规范》中有的词组,对应的表及字段按照《规范》进行命名;有的字段词组在《规范》中没有,则需要在《规范》中新加、完善和补充。新增加的《规范》简写,只是对应于某些字段内的单个词组上,而非针对整个字段。对于一些常用的命名,如金额-AMT、数据-NUM、非/不-UN、代码-CD、标识-FLAG等;对于一些业务专业性的,根据业务含义及其可能固有的简写进行参考命名。所以,命名可分为常用名词缩写、DW专有名词缩写及业务相关专有名词缩写三部分。
在数据仓库建设过程中,可以考虑专门人员负责字段、表等命名的专业化、规范化工作;如同代码统一工作一样,专人负责。
二、维度模型明细的层建模设计
在数据仓库整合层与DM层之间,一般会有一个过渡层,叫做维度标签明细层。这一层的作用是在数据整合层与DM层之间起一个过滤作用,使范式建模的数据到维度模型之前有一个缓冲。这一层主要是根据整合层的数据和下游报表的业务需求,进行类维度建模。
维度标签明细层,主要包含如下一些部分,最细粒度的主键、下游报表需要展现的维度、数量金额型的度量、报表指标等的一些汇总性指标(打标签)、报表筛选时用到的过滤字段及下钻到明细要展示的属性字段等等。包含这些字段列表的明细层事实表,结合对应的维度表满足下游报表的数据需求。
汇总性的一些指标,并不是一个指标对应一个标签;而是尽可能将其分的更细。如果一些指标可以分成两部分,那么这个指标就对应用两个标签标记。这样做的好处是,便于维度标签明细层的扩展,便于整个模型的扩展。因为这一层设计的目的不是在于支持一张报表,而是支持某一类报表。对于以后上的一些报表或应用中,有可能只用到这个指标的一部分,那么做一个总体性的标签就无法使用。
在这一层中,对于可以由本层计算得到的冗余性指标字段,也不需要打标签。可以在集市汇总层直接根据其他字段计算得到。
上面提到,维度标签明细层的设计是为某一类报表,而非针对某一个报表。就是将同一业务主题下,相同的粒度及所有可能用到的维度进行整合设计。
考虑到数据的性能,标签值应该用(0,1)表示,而不能将不符便条件的置空。
三、集市高度汇总层设计
集市高度汇总层是从维度标签明细层根据具体的报表进行汇总而得;集市高度汇总层一个汇总模型对应一个报表。
集市高度汇总层模型主要包含如下内容:对应的维度、对应的指标及汇总时可能用到的过滤条件字段。报表的下钻明细字段,应从维度标签明细层取数据。
对于计算同比、环比、清理率等问题,因为要同历史的快照进行比对,所以要根据具体的情况在集市汇总层添加一些月度、年度等汇总快照表。
四、其他的一些思考
其实,在维度度明细层和高度汇总层之间也可以加一个中度汇总层,用来计算从维度明细层到集市汇总层不能一次计算出的复合指标,其目的也就是用空间换取性能。模型架构从来就没有定论,伟大如Bill Inmon和Ralph Kimball者,都有针锋相对的结论;所以,如何设计、采用几层架构,从来就是一个见仁见智的问题,要结合具体情况。模型设计师需要有强大的理解能力、全局掌控能力及灵活的分析能力,每一点都很重要。
版权声明:本文为博主原创文章,未经博主允许不得转载。