数据仓库的两种建模方法
一, 范式建模
特点 : 自上而下的架构, 原子数据的数仓EDW,不是多维的,需要通过汇总建设成多维格式的数据集市层
优点:易于维护,高度集成
劣势:结构死板,部署周期长
条件;
1.每个属性的值唯一,不具多义性
2.每个非主属性必须完全依赖于整个主键,而非主键的一部分
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的情况。因此当我们考虑到我们的应用的场景是否需要考虑时效性的时候,我们也要做出相应的调整。
二,维度建模
特点: 自下而上, 通过ODS层数据,利用维度建模方法建设一致维度的数据集市,通过一致性维度可以将数据集市联系在一起,构成数仓
优点:构建迅速,最快的看到投资回报率,敏捷灵活,
缺点:作为企业资源不太好维护,结构复杂,数据集市集成困难
一般常规的数据仓库层级结构可分为:ods、dw(默认为汇总数据层,也可在细分为dwd(明细)与dw(汇总)两层)、dm共三层:
ods层:称为接口层或近源数据层,表结构与源系统表结构高度相似,通常在ods层主要会做字段的筛选,枚举值转换,编码统一,异常&缺失数据处理等操作。
dw层:称为中间层,按主题建模(域->主题)的明细数据层,数据粒度与ods层一致。
dm层:称为数据集市层,集市层是按照业务主题、分主题构建出来的、面向特定部门或人员的数据集合
当下的数据仓库模型架构设计中,dw层通常会采用范式建模,并且可以根据实际情况允许存在一些冗余。dm层通常会采用维度建模,因为采用维度建模构建出来的数据模型更加符合普通人的认知、易于被普通人所理解,从而有利于数据的推广使用。