搞数仓开发的,肯定要对数仓的结构了如指掌,好久没有复习,今天正好回顾一下
数仓分层作为最基础的数仓结构知识,通常分为离线数仓和实时数仓,一般分为贴源层(ODS)、明细层(DWD)、维度层(DIM)、轻度聚合层(DWS)、主题层(DWT)、数据中间层(DWM)和结果展示层(ADS)。下面简单介绍数仓各层的分层依据和每一层的功能。
1、贴源层(ODS): ODS层主要存储原始数据(一般都是来源于各个app的日志或者线下门店的表格,txt文本等)
2、明细层(DWD):基于原始数据层,将数据进行简单的清洗、脱敏后处理后建立明细表(明细表中一般也会有etl时间的字段,业务不同,字段也不相同)
3、维度表(DIM):基于原始数据层提取公共指标进行维度建模(实际上和明细层没有依赖关系,主要是根据业务需求来定,常见的有时间,地区编码对应表,所属机构编码对应表,业务类型编码对应表等等,后面想起来再补充)
4、轻度聚合层(DWS):是基于明细层数据,对明细层的数据进行轻度聚合得出(所谓轻度聚合,个人理解是提取业务核心字段,根据业务需求对数据进行进一步的加工)
5、主题层(DWT):根据主题提炼出相关指标,从DWS中提取和维度表关联得出(这个时候业务就要开始详细划分了,一般都是许多小需求围绕一个核心需求作为主题---个人理解)
6、数据中间层(DWM):对于一些跨部门协同,会产生一些公共字段,用DWM进行临时存储从而避免重复计算(类似于咱们这边的模型层)
7、结果展示层(ADS):基于需求,从主题中提取相关字段得出,用于结果展示(咱们这边是把报送的数据导入到Oracle中进行展示,只报送增量数据)