目录
本篇文章记录页面单跳转化率-需求分析、技术方案设计、数据表设计。
内容简介
- 业务:页面单跳转化率业务,实现思路
- 页面单跳切片生成以及页面流匹配的算法
需求分析
基础数据是什么?还是咱们的用户访问session分析模块基于的基础数据;用户购买支付统计模块;
基础数据是通用的;它里面就包含了网站 / app,每天所有用户在网站中,每一步的访问行为;origin_log
简便为上,三个模块都会用一套基础数据
实际生产环境中,其实一般不会这样;通常来说,都会为某个,或者某几个业务模块,通过hive etl,开发出一个源表。
基本的需求
- 接收J2EE系统传入进来的taskid,从mysql查询任务的参数,日期范围、页面流id
- 针对指定范围日期内的用户访问行为数据,去判断和计算,页面流id中,每两个页面组成的页面切片,它的访问量是多少
- 根据指定页面流中各个页面切片的访问量,计算出来各个页面切片的转化率
- 计算出来的转化率,写入mysql数据库中
用户指定的页面流id:3,5,7,9,10,21
页面3->页面5的转换率是多少;
页面5->页面7的转化率是多少;
页面7->页面9的转化率是多少;
页面3->页面5的访问量是多少;页面5到页面7的访问量是多少;两两相除,就可以计算出来
数据方案设计
- 获取任务的日期范围参数
- 查询指定日期范围内的用户访问行为数据
- 获取用户访问行为中,每个session,计算出各个在指定页面流中的页面切片的访问量;实现,页面单跳切片生成以及页面流匹配的算法;session,3->8->7,3->5->7,是不匹配的;
- 计算出符合页面流的各个切片的pv(访问量)
- 针对用户指定的页面流,去计算各个页面单跳切片的转化率
- 将计算结果持久化到数据库中
现在讲这个东西,看起来和听起来还是比较抽象的;写代码的时候,一边写,一边讲;到时候,对这个需求,先有一个囫囵吞枣的概念和认识;后面听课的时候,包括自己动手模仿课程写代码的时候,细细去体会一下,相信一定是可以对这个模块,有比较深入的认识和掌握的
数据表设计
数据表
- taskid:唯一标识一个任务
- convert_rate:页面流中,各个页面切片的转化率,以特定的格式拼接起来,作为这个字段的值,例如 3,5=10%;5,7=20%
数据展示
大概如下