模块名称 | 完成情况 |
---|---|
用户基本信息分析(MR)� | 完成 |
浏览器信息分析(MR) | 完成 |
地域信息分析(MR) | 完成 |
外链信息分析(MR) | 未完成 |
用户浏览深度分析(Hive) | 未完成 |
订单分析(Hive) | 未完成 |
事件分析(Hive) | 未完成 |
和地域信息分析一样,在外链分析系统中, 我们也只是统计活跃用户、总会话以及跳出会话这三个指标的数据。 其中活跃用户和总会话个数和地域分析一样,采用uuid和sid的去重数量来表示, 也就是分别将去重后的uuid个数和去重后的sid个数作为外链分析模块中的活跃用户和总会话指标。 区别在于计算跳出会话。
外链维度信息(不考虑平台platform和日期date), 我们需要统计两个层面的数据,即:all、具体外链。 也就是说需要分别统计这两个维度的活跃用户、总会话以及跳出会话个数。 同以前的维度信息不一样,在这里外链维度采用完全确定的模式, 也就是说在运行过程中,代码中不会涉及到外链信息的插入。
需要原始数据:referrer url、uuid、u_sd、serverTime、platform这五个维度的字段信息, 所以在当前只有pc端数据和后台服务端数据的情况下,只需要对pageview事件的数据进行统计计算就可以了。
活跃用户和总会话的统计规则就是统计去重后的uuid和sid的个数。 这里主要介绍下,统计跳出会话的个数。 详见..\文档\外链信息分析-跳出会话计算规则.txt 统计的最终数据保存到表: stats_inbound表的active_users、sessions以及bounce_sessions三列上。 涉及到其他表有:dimension_platform、dimension_date以及dimension_inbound。
由于计算跳出会话的规则和计算活跃用户&总会话的规则不一样,所以这里我们采用两个不同mapreduce程序来计算统计数据。
跳出会话定义是指指访问一个页面的会话,也就是说通过外链进入到网站后没有进行其他任何操作的会话就是跳出会话。
例如:(使用w_1,w_2来分别表示不同来源的外部浏览情况,使用b_1,b_2来分别表示不同的本网站的pageview事件, 只考虑同一个会话中)
跳出会话,不仅仅只需要inbound进入的页面数据,而且还需要后续的普通页面。 platform+date inboundid(0表示普通页面) + sid + servertime: map阶段输出 reducer阶段工作:
1. 按照sid进行分组操作,放到map集合中
2. 针对map集合中的单个会话集合数据进行按照时间排序
3. 计算跳出会话个数
采用二次排序来避免在reducer阶段的大量内存操作。
platform+date+sid+servertime inboundid: map阶段输出
platform+date进行分组,先按照platform+date进行排序,然后按照sid排序,最后按照serverTime排序。