我们前面采集的日志数据已经保存到 Kafka 中,作为日志数据的 ODS 层,从 Kafka 的ODS 层读取的日志数据分为 3 类, 页面日志、启动日志和曝光日志。这三类数据虽然都是用户行为数据,但是有着完全不一样的数据结构,所以要拆分处理。将拆分后的不同的日志写回 Kafka 不同主题中,作为日志 DWD 层。
流页面日志输出到主流,启动日志输出到启动侧输出流,曝光日志输出到曝光侧输出流
识别新老用户
本身客户端业务有新老用户的标识,但是不够准确,需要用实时计算再次确认(不涉及业务操作,只是单纯的做个状态确认)。
启动日志
曝光日志
页面日志
实现逻辑
- 获取执行环境
- 消费 ods_base_log 主题数据创建流
- 将每行数据转换为JSON对象(脏数据写到侧输出流)
- 新老用户校验 状态编程
- 分流 侧输出流 页面:主流 启动:侧输出流 曝光:侧输出流
- 提取侧输出流
- 将三个流进行打印并输出到对应的Kafka主题中
- 启动任务
# 启动三个消费者,分别消费 dwd_start_log、dwd_page_log、dwd_display_log 主题$ bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic dwd_page_log
尚硅谷 源代码
B站视频 DWD&DIM