• 收藏--关于命名规范、维度明细层及集市汇总层设计的思考


    在SN做仓库项目,根据自己负责的内容及SN的一些规范等,将这一阶段的模型工作进行一个思考和总结。

    一、仓库字段、表等命名的规范

    数据仓库建设目的,其中重要的一个方面就是建立统一的全局视图;表、字段等的规范命名就是仓库全局视图一个方面的体现。

    在进行规范命名的时候,一般会根据《数据建模字段简写命名规范.xlsx》来进行。《规范》中有的词组,对应的表及字段按照《规范》进行命名;有的字段词组在《规范》中没有,则需要在《规范》中新加、完善和补充。新增加的《规范》简写,只是对应于某些字段内的单个词组上,而非针对整个字段。对于一些常用的命名,如金额-AMT、数据-NUM、非/不-UN、代码-CD、标识-FLAG等;对于一些业务专业性的,根据业务含义及其可能固有的简写进行参考命名。所以,命名可分为常用名词缩写、DW专有名词缩写及业务相关专有名词缩写三部分。

    在数据仓库建设过程中,可以考虑专门人员负责字段、表等命名的专业化、规范化工作;如同代码统一工作一样,专人负责。

    二、维度模型明细的层建模设计

    在数据仓库整合层与DM层之间,一般会有一个过渡层,叫做维度标签明细层。这一层的作用是在数据整合层与DM层之间起一个过滤作用,使范式建模的数据到维度模型之前有一个缓冲。这一层主要是根据整合层的数据和下游报表的业务需求,进行类维度建模。

    维度标签明细层,主要包含如下一些部分,最细粒度的主键、下游报表需要展现的维度、数量金额型的度量、报表指标等的一些汇总性指标(打标签)、报表筛选时用到的过滤字段及下钻到明细要展示的属性字段等等。包含这些字段列表的明细层事实表,结合对应的维度表满足下游报表的数据需求。

    汇总性的一些指标,并不是一个指标对应一个标签;而是尽可能将其分的更细。如果一些指标可以分成两部分,那么这个指标就对应用两个标签标记。这样做的好处是,便于维度标签明细层的扩展,便于整个模型的扩展。因为这一层设计的目的不是在于支持一张报表,而是支持某一类报表。对于以后上的一些报表或应用中,有可能只用到这个指标的一部分,那么做一个总体性的标签就无法使用。

    在这一层中,对于可以由本层计算得到的冗余性指标字段,也不需要打标签。可以在集市汇总层直接根据其他字段计算得到。

    上面提到,维度标签明细层的设计是为某一类报表,而非针对某一个报表。就是将同一业务主题下,相同的粒度及所有可能用到的维度进行整合设计。

    考虑到数据的性能,标签值应该用(0,1)表示,而不能将不符便条件的置空。

    三、集市高度汇总层设计

    集市高度汇总层是从维度标签明细层根据具体的报表进行汇总而得;集市高度汇总层一个汇总模型对应一个报表。

    集市高度汇总层模型主要包含如下内容:对应的维度、对应的指标及汇总时可能用到的过滤条件字段报表的下钻明细字段,应从维度标签明细层取数据

    对于计算同比、环比、清理率等问题,因为要同历史的快照进行比对,所以要根据具体的情况在集市汇总层添加一些月度、年度等汇总快照表。

    四、其他的一些思考

    其实,在维度度明细层和高度汇总层之间也可以加一个中度汇总层,用来计算从维度明细层到集市汇总层不能一次计算出的复合指标,其目的也就是用空间换取性能。模型架构从来就没有定论,伟大如Bill Inmon和Ralph Kimball者,都有针锋相对的结论;所以,如何设计、采用几层架构,从来就是一个见仁见智的问题,要结合具体情况。模型设计师需要有强大的理解能力、全局掌控能力及灵活的分析能力,每一点都很重要。

    http://blog.csdn.net/nisjlvhudy/article/details/47380245

  • 相关阅读:
    [笔记] 深入java虚拟机 类型的生命周期
    xml笔记
    Python笔记
    Effective C++ 笔记(2)
    [笔记] 深入java虚拟机 连接模型
    javascript对象成员访问权限
    [笔记] 深入java虚拟机 java class文件(2)
    STL笔记(3) Effective STL
    STL笔记(1)容器
    [IOS笔记] objecttivec基础知识
  • 原文地址:https://www.cnblogs.com/wenwu5832/p/6845806.html
Copyright © 2020-2023  润新知