数据仓库模型建设规范
1. 概述
数据仓库不同于日常的信息系统开发,除了遵循其他系统开发的需求、分析、设计、测试等通常的软件生命周期之外,它还涉及到企业信息数据的集成,大容量数据的阶段处理和分层存储,数据仓库的模式选择等等,因此数据仓库的模型设计异常重要,这也是关系到数据仓库项目成败的关键。
物理模型就像大厦的基础架构,就是通用的业界标准,无论是一座摩天大厦也好,还是茅草房也好,在架构师的眼里,他只是一所建筑,地基—层层建筑—封顶,这样的工序一样也不能少,关系到住户的安全,房屋的建筑质量也必须得以保证,唯一的区别是建筑的材料,地基是采用钢筋水泥还是石头,墙壁采用木质还是钢筋水泥或是砖头;当然材料和建筑细节还是会有区别的,视用户给出的成本而定;还有不可忽视的一点是,数据仓库的数据从几百GB到几十TB不等,即使支撑这些数据的RDBMS无论有多么强大,仍不可避免地要考虑数据库的物理设计。
数据仓库建模的设计目标是模型的稳定性、自适应性和可扩展性。为了做到这一点,必须坚持建模的相对独立性、业界先进性原则。
2. 数聚模型架构
在数聚项目实施过程,我们一般将数据仓库系统的数据划分为如下图所示几个层次。
2.1. 数据架构图
2.2. 架构工作方法规范
表类型 数据类型 加载方抽取方式 转换方式 式 变化类型 新增 修改 加载过程 新增代理键。插入记录 如果须保留历史,新增代理键。插入记录 如果无须保留历史,根据代理键修改记录。 维表 1.有时间戳 2.数据量巨大 3.交易事务表 4.周期数据处 理 增量变化抽取 清洗转换 标识增删改 增量变化加载 新增 事实表 删除 删除 若为逻辑删除,可等同修改,或在抽取时过滤。 若为物理删除,则增量抽取无法判断被删除。 根据流水号删除目标表数据,查找代理键, 然后再加载增量变化数据. 一般来说,事实表数据不物理删除, 如果物理删除,增量抽取方式无法判断出来。 落地TMP区 落地DCI区 修改 维清洗转换 落地DCI区 1.无时间戳 2.数据量小的表 3.代码表 4.主数据表 5.初始数据加载 全量抽取 落地TMP区 清洗转换 获取增量 标识增删改 增量变化添加时间戳 落地DCI区 加载 事实表 维表 表 全量加载 事实表 只适合系统初始化数据加载, 不区分增删改 查找对应代理键,全部加载, 适合数据量小的场合,ETL简单快捷。 新增代理键。插入记录 如果须保留历史,新增代理键。插入记 新增 修改 录 如果无须保留历史,根据代理键修改记录 删除 新增 修改 删除 维表不处理被删除的维度记录。 根据事务流水号,删除目标表。 查找代理键,直接插入目标表。 根据事务流水号,删除目标表. 可以处理物理删除现象。