目录
1 清洗过滤
- 去除json数据中的废弃字段,因为前端开发人员更新了埋点设计方案之后,可能有些没有用的字段也会保留
- json格式不正确的
- 过滤掉缺少关键字段的记录(deviceId、properties、eventId、sessionId缺任何一个都不行)sessionid是一个会话的key,浏览器第一次访问服务器会在服务器端生成一个session,有一个sessionid和它对应。tomcat生成的sessionid叫做jsessionid。
-
不符合要求的时间段的,因为数据存在延迟
2 数据解析
json字段解析成parquet格式
3 SESSION分割
- 对于web端日志,按天然session分割,不需要处理
- 对于app端日志,因为手机的程序退出去了,他后台会进行一个会话保持,再打开也就是恢复前台的时候。session没有变,因此要按时间间隔时间切割(业内通用:30分钟)
- 对于wx小程序,同app日志
4 数据规范处理
- Boolean字段,在数据中有使用-1/0/1标识的,也有使用true/false表示的,统一为Y/N/U
- 字符串类型再短,在数据中有空串,有null值,也有\N,统一为null值
- 日期格式统一,2020/9/2 2020-9-2 2020-09-02都统一成YYYY-MM-dd
- 小数类型,统一成decimal
- 字符串,统一成string
- 时间戳,统一成bigint
- .....
5 数据集成(本质上是维度退化)
- 日志中的经纬度解析成省市县信息:为了方便后续的地域维度分析
- 将日志中的IP地址解析成省市县信息
6 生成全局用户标识
为每个用户每一条访问记录;打上一个全局唯一的用户表示
(重点,给匿名访问记录也打上正确的 id标识)
有什么作用:选取合适的用户标识可以提高用户行为分析的准确性
7 保存结果
将数据输出为orc格式,压缩格式为snappy