1、点击流日志的主要分类
- 搜索日志:搜索历史的记录主要包括用户信息、时间、地址、检索的关键词,检索关键词拼音及缩写,用户年纪等,其中,记录的时间包括检索发生时的小时、当天是周几、当天的日期信息;地址信息包括了省市区县信息。
- 点击日志:点击历史记录了当前点击记录的用户信息、时间、地址、检索词、点击记录的序号、点击记录的ID,其中,记录的时间包括检索发生时的小时、当天是周几、当天的日期信息;记录了该产品是在搜索结果中点击的还是推荐结果中点击的;地址信息包括了省市区县信息。
- 购买日志:购买历史分类已付款和未付款,并记录的有付款时间和订单时间。统计还记录了用户信息、时间、地址、检索词、点击记录的序号、购买记录的ID,并且统计了在查看了该记录多少次以后购买的,也记录了该产品是在搜索结果中点击的还是推荐结果中点击的,其中,记录的时间包括检索发生时的小时、当天是周几、当天的日期信息;地址信息包括了省市区县信息。
- 浏览日志:浏览数据是用户在查看产品信息的浏览记录,一次点击查看的页面会记录多条浏览数据,该记录是采样数据,采集的频率是10秒一次,记录了用户信息、时间、地址、检索词、产品ID、当前鼠标浏览位置、当前页面焦点位置、当前页面滚动次数、距离上一次滚动时间等信息。
2、点击流日志的采集方式
- 显式模式主要是面谈和样本调查,用户在被调查过程中会受到心理等外界因素影响,有一定的局限性,并且调查成本较大;
- 隐式模式主要是对用户在访问过程中产生的数据进行日志分析,相对客观且对用户行为有较小的干涉,是用户行为分析中常用方式。
3、业务需求
在电商企业中,产品在做活动的时候,需要根据一些指标数据来观看活动的效果,常见的会包括pv、uv、订单数、订单人数、订单转化率、用户来源等等指标。随着业务人员对数据的实时性的要求越来越高,一些不依赖历史数据、可以被快速分析的指标就会使用流式计算来分析,让业务人员实时的看到活动推动的效果,并辅助做相关的决策。
4、功能需求
- 实时计算一个页面的访问量、独立访客、独立IP、访问次数
- 实时计算一个标签的访问量、独立访客、独立IP、访问次数
- 对相关实时指标通过曲线图进行展示、维度为每分钟、每半小时、每小时、每天等
5、数据准备
通过点击流系统获取用户行为日志,经过解析之后,得到以下的字段。
private int type;//1:浏览日志、2:点击日志、3:搜索日志、4:购买日志
private String hrefTag;//标签标识
private String hrefContent;//标签对应的标识,主要针对a标签之后的内容
private String referrerUrl;//来源网址
private String requestUrl;//来源网址
private String clickTime;//点击时间
private String appName;//浏览器类型
private String appVersion;//浏览器版本
private String language;//浏览器语言
private String platform;//操作系统
private String screen;//屏幕尺寸
private String coordinate;//鼠标点击时的坐标
private String systemId; //产生点击流的系统编号
private String userName;//用户名称
6、数据分析
- type:表示日志类型有哪些,分别是浏览日志、点击日志、搜索日志、购买日志,通过type能够明确的知道用户当前操作的业务类型
- hrefTag:一个标签的唯一标识,通过hrefTag能够知道用户当前点击的标签是什么
- hrefContent:当前标签的文本内容
- referrefUrl:当前请求的来源网址
- requestUrl:当前请求的网址
- clickTime:用户点击的时间,该时间作为用户操作最准确的时间,作为后期业务分析的唯一时间指标。
- coordinate:用户操作时,鼠标的位置,可以用来分析用户的点击习惯
- systemId:产生日志的业务系统有很多,包括商品系统、订单系统、会员系统、论坛系统等等,该字段用来区分不同的业务系统。
- userName:当前用户的账户名称
7、功能实现分析
7.1、实时计算一个页面的访问量、独立访客、独立IP、访问次数
定位一个页面可以通过用户当前请求的requestUrl进行定位。
产品人员将需要分析的页面,输入给程序。
7.2、实时计算一个标签的访问量、独立访客、独立IP、访问次数
定位一个标签可以通过hrefTag进行分析。
产品人员将需要分析的标签,输入给程序。
7.3、如何存储用户的输入信息
将产品人员需要分析的页面或标签,抽象为一个任务。任务信息为:任务编号、任务需要比对的字段、任务的值(用户输入的值)、比较方式(String的三种比较方式,包含,相等,正则)等。
7.4、如何进行曲线展示
为每个任务生成每分钟的增量数据,在增量数据的基础上进行曲线展示