一、数据仓库概念
数据仓库(Data Warehouse),可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。
二、数仓分层的意义
1、问题简单化,将一个复杂的问题分割成多步简单问题的集合,按步骤解决问题;
2、数据结构清晰化,将数据分层后,每一层数据都会有作用域,方便我们对数据进行定位,当数据出现问题时,不用从头对数据进行修复,我可以根据数据表的特性找到具体的数据层,然后对数据进行修复;
3、数据复用化,每一次进行数据计算,大可不用从原始数据重新跑一遍,可以找所需数据的数据层,然后从那一层进行计算,提高数据的复用性;
4、考虑到数据异常和数据的敏感性,我们都应该将原始数据和统计数据分开。
三、数仓分层架构图
1、ods层:原始数据层,存放原始数据,直接加载原始日志、数据,数据保持原貌不做处理。一般情况下,以增量的方式从业务系统导入到ods层,数据模型和粒度都与业务系统保持一致。ods层是数仓的数据准备层,为dwd层提供数据,可以减少对业务系统的影响;
2、dwd层:数据明细层,结构和粒度与ods层保持一致,对ods层数据进行清洗(去除空值,脏数据,超过极限范围的数据),也有公司叫dwi。一般情况下,会根据ods增量数据和前一天DWD相关表进行merge生成全量数据,为DW层提供来源明细数据;
3、dw层:数据事实层,会采用维度建模,星型架构,这一层可细分为dwb与dws。会从dwd层进行轻度清洗,转化,汇总生成dw层数据,如字符合并,email,证件号,日期,手机号转换合并;按各个维度进行聚合汇总;
4、dm层:数据服务层,以dw或dwd为基础,进行轻度汇总。一般聚集到以用户当日,设备当日,商家当日,商品当日等等的粒度。在这层通常会有以某一个维度为线索,组成跨主题的宽表,比如 一个用户的当日的签到数、收藏数、评论数、抽奖数、订阅数、点赞数、浏览商品数、添加购物车数、下单数、支付数、退款数、点击广告数组成的多列表。
5、st层:数据来自dw层,采用维度建模,星型架构,主要用于前端报表展示,主题分析,kpi报表。一般从dw层进行粗粒度聚合汇总,如按年、月、季、天对一些维度进行聚合生成业务需求的事实数据。
因为是新手,如果有错的或者模糊的地方,还请谅解!谢谢!!