@Author : Spinach | GHB
@Link : http://blog.csdn.net/bocai8058
前言
通过收集资料、个人经验总结整理了【数据仓库系列篇】,有不足之处多多包涵,可参考如下:
《数据仓库系列篇之基本概述》
《数据仓库系列篇之分层思想》
《数据仓库系列篇之管理规范》
《数据仓库系列篇之实现架构》
公共层设计理念遵循维度建模思想,数据模型的维度设计主要以维度建模理论为基础,基于维度数据模型总线架构,构建一致性的维度和事实。
模型分层
整体表数据模型分为三层:操作数据层(ODS)、公共维度模型层(CDM)和应用数据层(ADS),其中公共维度模型层(CDM)包括公共维度层(DIM)、明细数据层(DWD)和汇总数据层(DWS)。
操作数据层(ODS)
- 将操作数据几乎原封不动的存储到数据仓库中,相当于近源层,尽可能保留原始原味的数据。
公共维度模型层(CDM)
- 存放明细事实数据、维表数据及公共指、标汇总数据,其中明细事实数据、维表数一般根据ODS层数据加工生成;公共指标汇总数据一般根据维表数据和明细事实数据加工生成。
- CDM层又细分为DWD层和DWS层,分别是明细数据层和汇总数据层,采用维度模型方法作为理论基础更多地采用一些维度退化手法,将维度退化至事实表中,减少事实表和维表的关联,提高明细数据易用性;
- 同时在汇总数据层,加强指标的维度退化,采取更多的宽表手段构建公共指标数据层,提升公共指标的复用性,减少重复加工。
应用数据层(ADS)
- 存放数据产品个性化的统计指标数据,根据CDM层与ODS层加工生成。
下图为阿里巴巴数据仓库模型框架图。
基本原则
- 高内聚和低辑合
一个逻辑或者物理模型由哪些记录和字段组成,应该遵循最基本的软件设计方法论的高内聚和低藕合原则。主要从数据业务特性和访问特性两个角度来考虑:将业务相近或者相关、粒度相同的数据设计为一个逻辑或者物理模型:将高概率同时访问的数据放一起,将低概率同时访问的数据分开存储。 - 核心模型与扩展模型分离
建立核心模型与扩展模型体系,核心模型包括的宇段支持常用的核心业务,扩展模型包括的字段支持个性化或少量应用的需要,不能让扩展模型的宇段过度侵人核心模型,以免破坏核心模型的架构简洁性与可维护性。 - 公共处理逻辑下沉及单一
越是底层公用的处理逻辑越应该在数据调度依赖的底层进行封装与实现,不要让公用的处理逻辑暴露给应用层实现,不要让公共逻辑多处同时存在。 - 成本与性能平衡
适当的数据冗余可换取查询和刷新性能,不宜过度冗余与数据复制。数据可回滚处理逻辑不变,在不同时间多次运行数据结果确定不变。 - 一致性
具有相同含义的字段在不同表中的命名必须相同,必须使用规范定义中的名称。 - 命名清晰、可理解
表命名需清晰、一致,表名需易于消费者理解和使用。
引用:《大数据之路-阿里巴巴大数据实践》