一、数仓为什么要分层?
1、分层解耦,可以让开发思路更加清晰,复杂问题简单化(出错时,可以精确定位数据)
2、节省重复开发
3、脱敏
二、数仓的分层
以5层数仓为例
ODS层:原始数据层,原始数据原封不动的直接导入!
DWD层:基于ODS层,将原始数据进行清洗,筛选后的数据,把其中的明细打开
例如:启动日志原始数据:{t:xxx,ba:xxx}
展开后,可以获得具体每个字段的值,
DWS层:为后续的分析提供数据服务,基于DWD层,将DWD层的数据按天进行聚合!
例如:统计每天新增的用户,每天的订单量,每天的交易额
DWT层:选择一个主题,以主题为核心,将和这个主题所有相关的核心数据,进行导入
例如:以用户为主题,将和用户相关的所有信息(新增用户数,用户下单数,用户评论数,用户点赞数,用户使用优惠券数等)进行汇总。
ADS层:基于DWT层,统计具体报表需要的结果