#博学谷IT学习技术支持#
ODS层: 源数据层
作用: 对接数据源, 和数据源的数据保持相同的粒度(将数据源的数据完整的拷贝到ODS层中)
注意:
如果数据来源于文本文件, 可能会需要先对这些文本文件进行预处理(spark)操作, 将其中不规则的数据, 不完整的数据, 脏乱差的数据先过滤掉, 将其转换为一份结构化的数据, 然后灌入到ODS层
一般放置 事实表数据和少量的维度表数据
DW层: 数据仓库层
DWD层: 明细层
作用: 用于对ODS层数据进行清洗转换工作 , 以及进行少量的维度退化操作
少量:
1) 将多个事实表的数据合并为一个事实表操作
2) 如果维度表放置在ODS层 一般也是在DWD层完成维度退化
DWM层: 中间层
作用: 1) 用于进行维度退化操作 2) 用于进行提前聚合操作(周期快照事实表)
DWS层: 业务层
作用: 进行细化维度统计分析操作
DA层: 数据应用层
作用: 存储基于DWS层再次分析的结果, 用于对接后续的应用(图表, 推荐系统...)
例如:
比如DWS层的数据表完成了基于订单表各项统计结果信息, 但是图表只需要其中销售额, 此时从DWS层将销售额的数据提取出来存储到DA层
DIM层: 维度层
作用: 存储维度表数据
什么叫做维度退化: 是为了减少维度表的关联工作
做法: 将数据分析中可能在维度表中需要使用的字段, 将这些字段退化到事实表中, 这样后续在基于维度统计的时候, 就不需要在关联维度表, 事实表中已经涵盖了维度数据了
例如: 订单表, 原有订单表中只有用户id, 当我们需要根据用户维度进行统计分析的时候, 此时需要关联用户表, 找到用户的名称, 那么如果我们提前将用户的名称放置到订单表中, 那么是不是就不需要关联用户表, 而则就是维度退化
好处: 减少后续分析的表关联情况
弊端: 造成数据冗余
总结:
- ODS:原始数据层
- 功能:临时存储采集到的原始数据
- 数据:与原始数据保持一致
- DWD:明细数据层
- 功能:对ODS层数据进行数据清洗,保证数据质量
- 数据:来自于ODS层
- DWM/DWB:轻度聚合层【中间数据层/基础数据层】
- 功能:对DWD层实现轻度聚合,通过关联构建宽表退化维度,或者轻度聚合构建基础指标来实现
- 数据:来自于DWD
- DWS:服务数据层
- 功能:对上一层的数据按照主题需求构建主题结果进行最终聚合,主题域宽表
- 数据:上一层,包含这个主题域所有维度和指标
- APP/DA/ADS:数据应用层
- 功能:按照数仓主题对外提供数据的需求
- 数据:对DWS层的数据进行拆解,构建每个主题的结果表
- DM:数据集市层
- 功能:按照每个部门的需求来构建每个部门的数据或者按照细粒度做轻度聚合
- 数据:来自于DW
- DIM:维度数据层
- 功能:存储所有维度数据表
- 数据:一般都来自于DWD
- TMP:临时数据层
- 功能:存放一些临时数据表
- 数据:来自于DW中任何一层需要用到的临时数据