数据仓库和数据仓库分层
1 数据仓库的概念
数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。
数据仓库,并不是数据的最终目的地,而是为数据最终的目的地做好准备。这些准备包括对数据的:清洗,转义,分类,重组,合并,拆分,统计等等。
2 为什么要对数仓进行分层
1 把复杂问题简单化
将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。
2 数据结构清晰
每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。
便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复
3 提高数据的复用性
规范数据分层,通过的中间层数据,能够减少极大的重复计算,增加一次计算结果的复用性。
4 隔离原始数据
不论是数据的异常还是数据的敏感性,使真实数据与统计数据解耦开。
3 数仓分层结构图
数据分层原理
ODS 层
原始数据层,存放原始数据,直接加载原始日志、数据,数据保持原貌不做处理。
DWD层
明细数据层
结构和粒度与ods层保持一致,对ods层数据进行清洗(去除空值,脏数据,超过极限范围的数据),也有公司叫dwi。
DWS层
服务数据层
以dwd为基础,进行轻度汇总。一般聚集到以用户当日,设备当日,商家当日,商品当日等等的粒度。
在这层通常会有以某一个维度为线索,组成跨主题的宽表,比如 一个用户的当日的签到数、收藏数、评论数、抽奖数、订阅数、点赞数、浏览商品数、添加购物车数、下单数、支付数、退款数、点击广告数组成的多列表。
ADS层
数据应用层, 也有公司或书把这层成为app层、dal层、dm层,叫法繁多。
面向实际的数据需求,以DWD或者DWS层的数据为基础,组成的各种统计报表。
统计结果最终同步到RDS以供BI或应用系统查询使用。
4 关于区分数据集市和数据仓库
数据集市:Date Market
早在数据仓库诞生之初,一同并存的就有数据集市的概念。
现在市面上的公司和书籍都对数据集市有不同的概念。
狭义上来讲数据集市,可以理解为数据仓库中为用户提供数据支撑的应用层,比如咱们前文说的ADS层。
广义上,数据集市,所有以主题划分的数据仓库中可供查阅的都可以成为数据集市,包括DWD,DWS,ADS层,甚至包括从hadoop中同步到RDS的数据都可以成为数据集市,
比如订单主题,我可以提供使用者,从明细,聚合统计,比率分析等全部数据,提供给某个部门查询。那么除了订单还有用户、商品、供应商等等主题分别可以供不同的人员部门使用,这都可以称之为数据集市。
5 关于执行周期
大规模的数据往往无法通过一次或一个时间段计算完成,
比如我需要统计今年的总收入。那我们不希望把计算压力都集中在最后,要统计数据的时候才把全年数据进行计算。
我们要把计算压力分摊开,比如我们如果能提前把每个月的数据计算好,统计年的时候一加就可以了。要用月度或者周数据时候,就把每日算好的数据进行汇总。
所以作为离线数据我们计算的单位周期是日。
也就是每日进行一次计算,这样当日用户可以查看到截至前一日的数据的计算结果。