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