Hadoop离线数据分析平台实战——360地域信息分析
项目进度
模块名称 | 完成情况 |
---|---|
用户基本信息分析(MR)� | 完成 |
浏览器信息分析(MR) | 完成 |
地域信息分析(MR) | 未完成 |
外链信息分析(MR) | 未完成 |
用户浏览深度分析(Hive) | 未完成 |
订单分析(Hive) | 未完成 |
事件分析(Hive) | 未完成 |
地域信息分析规则
在地域信息分析模块中,
我们只统计活跃用户、总会话数以及跳出会话个数这三个指标的信息,
那么我看将代码写出之前的模式,一个分析指标写一个mapreduce;
也可以将这三个指标的统计都放到一个mapreduce程序中去操作;
还可以将活跃用户统计和总会话数统计放到以前的active_user和sessions这两个job中,
单独写一个计算跳出会话个数的job来统计最后一个指标。
在这里我们采用介绍第二种方式,也就是讲所有的指标写到一个mapreduce程序中,方便安装模块进行后期维护。
地域维度信息(不考虑平台platform和日期date),
我们需要统计三个层面的数据,
即:国家级别、省份级别、城市级别。也就是说需要分别统计这三个维度的活跃用户、总会话以及跳出会话个数。
日期维度只按天计算数据,不进行按月和按周计算。
平台维度计算一个all维度和一个具体的平台维度。
需要原始数据:国家、省份、城市、uuid、serverTime、platform这六个维度的字段信息(或者加一个ip地址),
所以在当前只有pc端数据和后台服务端数据的情况下,
只需要对pageview事件的数据进行统计计算就可以了。
在维度确定的情况下,活跃用户统计就是统计uuid(用户唯一标识符)的去重个数;
总会话个数就是统计u_sd(会话id)的去重个数;
跳出会话个数就是统计只访问一个pv的会话总个数,而且pv的计算是统计访问次数来进行判断的,也就是说pv不去重。
也就是说最终只需要uuid和u_sd就可以进行判断操作了。
统计的最终数据保存到表:stats_device_location表的active_users、sessions以及bounce_sessions三列上。
涉及到其他表有:dimension_platform、dimension_date以及dimension_location。
编码步骤
- 编写操作dimension_location表相关操作的类和方法。
- 编写mapper类
- 编写reducer类
- 编写runner类
- 测试