统计本身就是从明细数据汇总出结果的过程。
但是如果很多的统计任务都从明细数据直接得到结果,那么就会存在很多的重复计算
尤其是明细数据一般会比较多,那么就会造成计算资源的浪费
所以分层聚合的目的就是将一些公共的聚合提前做好
后续的统计,只需要基于这个初步聚合的数据。
聚合就是根据维度,关联这些维度在多个业务角度的统计指标,
比如一个app用户,一天使用多个功能的统计数据,pv
dwd:纯明细数据
dwm和dws的区别,dws是更上层的
dwm里面所有维度直接是多对多,多个维度组成记录的唯一key
一个用户,在某个频道的浏览量, 这样的话,库里有多个相同uid和不同频道cid的组合记录: uid+cid
dws里面只有一个主维度,其他维度是这个主维度的属性,属于1对多,主维度就是记录的唯一key
一个app用户,一天使用多个功能的统计数据,pv,每个功能是一个字段