实时数仓DWS层的定位
- 轻度聚合,因为DWS层要应对很多实时查询,如果是完全的明细那么查询的压力是非常大的。
- 将更多的实时数据以主题的方式组合起来便于管理,同时也能减少维度查询的次数。
1. DWS层:访客主题宽表
设计一张DWS层的表其实就两件事:维度和度量(事实数据)
- 度量包括PV、UV、跳出次数、连续访问页面数、连续访问时长
- 维度包括在分析中比较重要的几个字段:渠道、地区、版本、新老用户进行聚合
需求分析与思路
- 接收各个明细数据,变为数据流
- 把数据流合并在一起,成为一个相同格式对象的数据流
- 对合并的流进行聚合,聚合的时间窗口决定了数据的时效性
- 把聚合结果写在数据库中
2.DWS层:商品主题宽表
与访客的dws层的宽表类似,也是把多个事实表的明细数据汇总起来组合成宽表
需求分析与思路
- 从Kafka主题中获得数据流
- 把Json字符串数据流转换为统一数据对象的数据流
- 把统一的数据结构流合并为一个流
- 设定事件时间与水位线
- 分组、开窗、聚合
- 写入ClickHouse