对用户访问session进行分析

一、模块的目标:对用户访问session进行分析

1、可以根据使用者指定的某些条件,筛选出指定的一些用户(有特定年龄、职业、城市);
2、对这些用户在指定日期范围内发起的session,进行聚合统计,比如,统计出访问时长在0~3s的session占总session数量的比例;
3、按时间比例,比如一天有24个小时,其中12:00~13:00的session数量占当天总session数量的50%,当天总session数量是10000个,那么当天总共要抽取1000个session,ok,12:00~13:00的用户,就得抽取1000*50%=500。而且这500个需要随机抽取。
4、获取点击量、下单量和支付量都排名10的商品种类
5、获取top10的商品种类的点击数量排名前10的session
6、开发完毕了以上功能之后,需要进行大量、复杂、高端、全套的性能调优
7、十亿级数据量的troubleshooting(故障解决)的经验总结
8、数据倾斜的完美解决方案
9、使用mock(模拟)的数据,对模块进行调试、运行和演示效果

二、用户访问session介绍:

用户在电商网站上,通常会有很多的点击行为,首页通常都是进入首页;然后可能点击首页上的一些商品;点击首页上的一些品类;也可能随时在搜索框里面搜索关键词;还可能将一些商品加入购物车;对购物车中的多个商品下订单;最后对订单中的多个商品进行支付。

用户的每一次操作,其实可以理解为一个action,比如点击、搜索、下单、支付

用户session,指的就是,从用户第一次进入首页,session就开始了。然后在一定时间范围内,直到最后操作完(可能做了几十次、甚至上百次操作)。离开网站,关闭浏览器,或者长时间没有做操作;那么session就结束了。

以上用户在网站内的访问过程,就称之为一次session。简单理解,session就是某一天某一个时间段内,某个用户对网站从打开/进入,到做了大量操作,到最后关闭浏览器。的过程。就叫做session。

session实际上就是一个电商网站中最基本的数据和大数据。那么大数据,面向C端,也就是customer,消费者,用户端的,分析,基本是最基本的就是面向用户访问行为/用户访问session。

三、基础数据结构介绍(源数据)

实际上,从这节课开始,我们就已经进入了正规的大数据项目开发流程。我们做任何大数据系统/平台类的项目,首先第一步,就是要做数据调研。也就是分析平台要基于的底层的基础数据。分析表结构,弄清楚表之间的关系。表中的数据的更新粒度,一个小时更新一次,还是一天更新一次。会不会有脏数据。每天什么时候数据能够进来。

下面两个基础信息表,实际是hive中的表,我是为了记录各个字段的含义

3.1、用户行为数据, 表示用户的行为信息

这里写图片描述

3.2、用户信息

这里写图片描述

四、需求分析及技术方案设计

五、数据表设计

六、功能开发

6.1、模拟数据,按照三、基础数据结构介绍(源数据)中的需求,生成模拟数据

可以参考Spark通过Dataframe操作hive

6.2、按session粒度进行数据聚合

 * 接收用户创建的分析任务,用户可能指定的条件如下:
 * 
 * 1、时间范围:起始日期~结束日期
 * 2、性别:男或女
 * 3、年龄范围
 * 4、职业:多选
 * 5、城市:多选
 * 6、搜索词:多个搜索词,只要某个session中的任何一个action搜索过指定的关键词,那么session就符合条件
 * 7、点击品类:多个品类,只要某个session中的任何一个action点击过某个品类,那么session就符合条件
 * 
 * 我们的spark作业如何接受用户创建的任务?
 * 
 * 前端在接收用户创建任务的请求之后,会将任务信息插入MySQL的task表中,任务参数以JSON格式封装在task_param
 * 字段中
 * 
 * 接着后台会执行我们的spark-submit shell脚本,并将taskid作为参数传递给spark-submit shell脚本
 * spark-submit shell脚本,在执行时,是可以接收参数的,并且会将接收的参数,传递给Spark作业的main函数
 * 参数就封装在main函数的args数组中
 * 
 * 这是spark本身提供的特性

6.3、按筛选参数对session粒度聚合数据进行过滤

即对6.2中聚合后的数据,按照客户的刷选条件进行过滤。通过使用Fliter算子进行过滤

6.4、session聚合统计之自定义Accumulator

6.5、session聚合统计之重构实现思路与重构session聚合

猜你喜欢

转载自blog.csdn.net/wuxintdrh/article/details/80903303
今日推荐