数据仓库的两种建模⽅法(范式建模和维度建模)
范式建模
Inmon提出的集线器的⾃上⽽下(EDW-DM)的数据仓库架构。操作型或事务型系统的数据源,通过ETL抽取转换和加载到数据仓库的ODS层,然后通过ODS的数据建设原⼦数据的数据仓库EDW,EDW不是多维格式的,不⽅便上层应⽤做数据分析,所以需要通过汇总建设成多维格式的数据集市层。优势:易于维护,⾼度集成;劣势:结构死板,部署周期较长
范式建模应⽤在EDW层
⼀个符合第三范式的关系必须具有以下三个条件:
1. 每个属性的值唯⼀,不具有多义性;
2. 每个⾮主属性必须完全依赖于整个主键,⽽⾮主键的⼀部分;
3. 每个⾮主属性不能依赖于其他关系中的属性,因为这样的话,这种属性应该归到其他关系中去。
但是由于EDW的数据是原⼦粒度的,数据量⽐较⼤,完全规范的3范式在数据的交互的时候效率⽐较低下,所以通常会根据实际情况在事实表上做⼀些冗余,减少过多的数据交互。
Inmon理论下结构就是:ODS、EDW和DM,也就是贴源层、主题模型层、共性加⼯层以及集市层。每⼀个层对应于数据库下⾯的模式,接下来依次介绍这四个层:
(1) ODS(贴源层):即这⾥存放的数据与原系统保持⼀致,将采集公司所有的系统产⽣的数据以及外部数据(包括合作数据以及爬⾍获得的数据),将所采集的数据汇总到⼀起,供EDW和DM使⽤;
(2) EDW:这⼀层分为两个,即ADM(共性加⼯层)和FDM(主题模型层)。其中FDM将从ODS层不同系统不同表的字段进⾏分类,同⼀主题的字段都归为⼀类,⽬前流⾏的⼗⼤主题;ADM是加⼯⼀些共性的指标,指标从ODS或者FDM的字段加⼯来,这层主要供集市层使⽤;
(3) DM:数据集市层,这⼀层是将业务部门所关注的指标进⾏汇总,形成的数据,不同的业务部门可以形成不同的集市,具体情况可以视情况⽽定;集市层的架构可以细分为:基础层、汇总层和分析层。
这样的层次结构,虽然层次很清晰,但是如果越靠近底层数据出现问题,那么就会越影响到后⾯的;同时时间上做不到实时更新,⼀边都是T+1,或者越到后⾯时效性都可能是T+2/3的情况。因此当我们考虑到我们的应⽤的场景是否需要考虑时效性的时候,我们也要做出相应的调整。
维度建模
Kimball提出的总线式的⾃下⽽上(DM-DW)的数据仓库架构。同样的,操作型或事务型系统的数据源,通过ETL抽取转换和加载到数据仓库的ODS层,然后通过ODS的数据,利⽤维度建模⽅法建设⼀致维度的数据集市。通过⼀致性维度可以将数据集市联系在⼀起,由所有的数据集市组成数据仓库。优势:构建迅速,最快的看到投资回报率,敏捷灵活;劣势:作为企业资源不太好维护,结构复杂,数据集市集成困难。
星型模型(推荐)和雪花模型
在复合式的数据仓库架构中,操作型或事务型系统的数据源,通过ETL抽取转换和加载到数据仓库的ODS层,然后通过ODS的数据,利⽤范式建模⽅法,建设原⼦数据的数据仓库EDW,然后基于EDW,利⽤维度建模⽅法建设数据集市。建模方法
优劣⽐较
特性Kimball Inmon
时间快速交付路漫漫其修远兮
开发难度⼩⼤
维护难度⼤⼩
技能要求⼊门级专家级
数据要求特定业务企业级
参考⽂献:
扩展阅读:
⼀般常规的数据仓库层级结构可分为:ods、dw(默认为汇总数据层,也可在细分为dwd(明细)与dw(汇总)两层)、dm共三层:
ods层:称为接⼝层或近源数据层,表结构与源系统表结构⾼度相似,通常在ods层主要会做字段的筛选,枚举值转换,编码统⼀,异常&缺失数据处理等操作。
dw层:称为中间层,按主题建模(域->主题)的明细数据层,数据粒度与ods层⼀致。
dm层:称为数据集市层,集市层是按照业务主题、分主题构建出来的、⾯向特定部门或⼈员的数据集合。
维度建模源于Kimball提出的总线式的⾃下⽽上(DM-DW)的数据仓库架构。
特点:
1.模型结构简单,星型模型为主;
2.开发周期短,能够快速迭代;
3.维护成本较⾼;
范式建模源于Inmon提出的集线器的⾃上⽽下(EDW-DM)的数据仓库架构。
特点:
1.同⼀份数据只存放在⼀个地⽅,因此只能从⼀个地⽅获取,没有数据冗余,保证了数据⼀致性;
2.解耦(系统级与业务级),⽅便维护;
3.开发周期较长,开发成本较⾼;
当下的数据仓库模型架构设计中,dw层通常会采⽤范式建模,并且可以根据实际情况允许存在⼀些冗余。
dm层通常会采⽤维度建模,因为采⽤维度建模构建出来的数据模型更加符合普通⼈的认知、易于被普通⼈所理解,从⽽有利于数据的推⼴使⽤。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论