一、需求分析
前面的两层中的表和需求一般没什么关系,就是把已有的数据接入进来。然后对数据进行清洗处理。
但是后面的dws层和app层是和业务有关联的,所以在构建这两层中的表的时候,我们需要根据一些典型的业务场景来进行分析,在根据具体业务建表的时候尽可能把表设计的更加通用,可以满足后期一些类似业务需求。
就是说我们在基于业务构建表的时候,不要直接一个SQL搞定,可以把一些复杂的
SQL基于一些维度进行拆分,拆分出来一些中间表,再基于这些中间表统计最终的结果。
这样这个中间表里的数据,我们后期针对一些类似的业务需求还是可以使用的。
在这里,我们列出如下6个需求:
需求一:每日新增用户相关指标
需求二:每日活跃用户相关指标
需求三:用户7日流失push提醒
需求四:每日启动App次数相关指标
需求五:操作系统活跃用户相关指标
需求六:App崩溃相关指标
在计算这些需求的时候,为了保证大家在练习的时候的计算结果和我这边的结果保持一致,所以针对后面的测试数据就不再随机生成了,而是生成固定的数据,一共1个月的数据,从2026-02-01到2026-02-28的数据。
二、生成数据
执行代码,重新生成数据。
注意修改校验码和你hadoop的主机名地址。
代码如下:
package com.imooc.useraction;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.imooc.