其他
漫谈数据仓库的分层架构与演进为什么要分层在实际的工作中,我们都希望自己的数据能够有顺序地流转,设计者和使用者能够清晰地知道数据的整个声明周期。优秀可靠的数仓体系,需要良好的数据分层结构。合理的分层,能够使数据体系更加清晰,使复杂问题得以简化。合理的分层概括就是:清晰的数据结构与依赖,提高开发效率,合理的数据权限。具体具有以下优点:数据结构与依赖关系:如果没有清晰的分层,可能会做出一套表依赖结构混乱,且出现循环依赖的数据体系,让流程越走越越死。减少重复开发的成本:建立一个或者多个模型,可以为支业务撑建立多个指标。规范数据分层,开发通用的中间层,可以极大地减少重复计算的工作。统一数据口径:通过数据分层,提供统一的数据出口,统一输出口径。数据一致性:对于公共下沉数据,下游使用的时候不再重新计算,可以保证一定是数据一致性问题。数据权限:通过分层,可以更方便地对不同层,不同的数据模型进行权限管理,特定业务场景下,对不同的开发人员和业务人员屏蔽一些敏感的数据。怎么分层ODS(原始数据层)存放最原始的数据,结构和源系统保持一致,减少对业务系统的影响。DWD(明细数据层)在维度建模的理论上进行构建,存放维度模型中的事实表,保存各业务过程最小粒度的操作记录。有时候,为了提高数据明细层的易用性,该层会采用一些维度退化手法,将维度退化至事实表中,减少事实表和维表的关联。DIM(公共维度层)在维度建模的理论上进行构建,存放维度模型中的维度表,保存一致性维度信息。维度类分两种类型(自己概括的):大维度数据:比如用户维度等等小维度数据:比如配置表,日期表,地区表等等DWS(汇总数据层)基于上层的指标需求,以分析的主题对象作为建模驱动,构建公共统计粒度的汇总表。该层的数据表会相对比较少,一张表会涵盖比较多的业务内容,由于其字段较多,因此一般也会称该层的表为宽表。主要作用就是提升指标的复用性,减少重复加工。单维度下的轻度汇总表维度单一,统计指标丰富,迭代更灵活;多维度的轻度汇总表,维度丰富,统计指标有限,迭代相对复杂。ADS(数据应用层)存放各项统计指标结果。分层的误区数仓层内部的划分不是为了分层而分层,分层是为了解决数据