定义
数据仓库(Data Warehouse)是面向主题的、集成的、
相对稳定的并反应历史变化的数据集合 [1],数仓中的数据
是有组织、有结构的存储数据集合,用于支持管理、决策
过程。其中面向主题是指数据仓库是面向分析决策的,所
以数据经常按分析场景或者分析对象等主题形式来组织,
这是与面向应用进行数据组织的传统数据库的最大区别。
集成性是指通过对分散、独立以及异构的数据库数据进行
抽取、清理、转换和汇总,得到数据仓库的数据 [2],这样
就保证了数据仓库内的数据针对整个企业不同业务的数
据口径的一致性。
分层
从数据源的采集到多层清洗加工的过程中,数据仓库
形成了一套规范的数据逻辑分层,一般分为 4 层 [3],如图
1 所示。分层的核心思想就是解耦,即将一个复杂的任务
分解成多个步骤来完成,每层只处理单一的步骤,将复杂
问题简单化。另外通过数据分层,开发通用的中间层,提
供统一的数据出口,在规范数据的同时最大程度地减少重
复开发。
ODS 层 :全称为原始数据层(Operation Data Store)。
该层对从数据源采集的原始数据进行原样存储。
DWD 层:全称为明细数据层(Data Warehouse Detail)。
该层对 ODS 层的数据进行清洗,主要解决一些数据质量
问题。
DWS 层:全称为服务数据层(Data Warehouse Service)。
该层对 DWD 层的数据进行轻度汇总,生成一系列的中间
表,提升公共指标的复用性,减少重复加工,并构建出一
些宽表,供后续进行业务查询。
App 层:全称为应用数据层(Application)。DWD、DWS
层数据统计结果会存储在 App 层。App 层数据可以直接对
外提供查询,一般会将 App 层的数据导入 MySQL 中供 BI
系统使用,可提供报表展示、数据监控及其他功能。