数据仓库

1 概念

数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。
在这里插入图片描述
数据仓库,并不是数据的最终目的地,而是为数据最终的目的地做好准备。这些准备包括对数据的:清洗,转义,分类,重组,合并,拆分,统计等等。

2 数仓如何分层

一般情况下,将数据模型分为3层:

2.1 源数据层 ODS(Operational Data Store)

存放的是接入的原始数据
经过ETL之后装入本层,大多是按照源头业务系统的分类方式而分类的。为了考虑后续可能追溯数据为题,因此对这一层不建议做过多的数据清洗工作,原封不动接入源数据即可,至于数据的去噪,去重,异常值处理等过程可以放到后面的DW层。

2.2 数据仓库层 DW(Data Warehouse)

重点设计的数据仓库中间层数据,在这里ODS层获得的数据按照主题建立各种数据模型,DW又细分:

2.2.1 数据明细层:DWD(Data Warehouse Detail)

该层一般保持和ODS层一样的数据粒度,并且提供给一定的数据质量保证。同时为了提高数据明细层的易用性,该层会采用一些维度退化手法,将维度退化到事实表中,减少事实表和维度表的关联。另外,在该层也会做一部分的数据聚合,将相同主题的数据汇集到一张表中,提高数据的可用性。

2.2.2 数据中间层:DWM(Data Warehouse Middle)

在DWD层的数据基础上,对数据做轻度的聚合操作,生成一系列的中间表提升公共指标的复用性,减少重复加工,只管来说,就是对通用的核心维度进行聚合操作,算出相应的统计指标

2.2.3 数据服务层:DWS(Data Warehouse Service)

又称为数据集市或者宽表,按照业务划分,例如流量,订单,用户等,生产字段比较多的宽表,用于后续的业务查询,OLAP分析,数据分析等。

2.3 数据应用层 ADS(Application Data Store)

数据应用层, 也有公司或书把这层成为app层、dal层、dm层,叫法繁多。
面向实际的数据需求,以DWD或者DWS层的数据为基础,组成的各种统计报表。
统计结果最终同步到RDS以供BI或应用系统查询使用。

3 为什么要进行数据分层

(1) 把复杂问题简单化 将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。 (2) 数据结构清晰 每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。 便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复 (3)提高数据的复用性 规范数据分层,通过的中间层数据,能够减少极大的重复计算,增加一次计算结果的复用性。 (4) 隔离原始数据 不论是数据的异常还是数据的敏感性,使真实数据与统计数据解耦开。