Lv游网电商离线数据分析平台--1.需求分析

项目介绍

整体架构:hadoop, hfds, hbase, hive, flume, sqoop, oozie
- 日志收集
- 数据分析: ETL, MR_Job, Hive 分析,存储到Hbase或MySQL
- 数据展示:SpringBoot, Mybatis, Hicharts, 访客访问量,活跃数量,比率,地区热力图

项目综述

项目划分为lv_track,lv_transforer 和 lv_dataapi 三个分析模块

本次项目主要以分析七个模块的数据,分别为用户基本信息分析、操作系统分析、地域信息分析、用户浏览深度分析、外链数据分析、订单信息分析以及事件分析。

针对不同的分析模块,有不同的用户数据需求,所以我们

  • 在 lv_track 项目中提供不同的客户端来收集不同的数据
  • 在lv_transformer 中分别采用 hive+mr 两种方式进行数据分析
  • 在 lv_dataapi 中进行分析结果的api提供以及结果图表展示

收集系统(lv_track)

将用户浏览的数据采集到我们的存储系统(hdfs),只收集pc端数据和程序后台的部分数据。在pc端我们通过集成js来收集用户浏览行为数据;在程序后台,通过集成java的jar文件来收集我们需要的数据。在这里只考虑java开发环境。js/jar将收集的数据发送到nginx,然后flume监控nginx日志,将数据写入到hdfs中


java sdk

订单信息的分析由于需要明确是否进行支付,需要程序后台发送消息通知,故只有订单分析模块需要在后台程序中调用。

在本次项目中java sdk的作用主要就是发送支付/退款成功的信息给 nginx服务器

工作流如下所示:(退款类似)

1、程序后台事件分析

chargeSuccess事件,本事件的主要作用是发送订单成功的信息给nginx服务器。发送格式同pc端发送方式, 也是访问同一个url来进行数据的传输。格式为: http://track.lv.com/static/img.jpg?requestdata=

最终分析模块

PC端js sdk事件

订单信息分析

chargeSuccess事件

chargeRefund事件

 

 

 

a) chargeSuccess事件

当会员最终支付成功的时候触发该事件,该事件需要程序主动调用

方法名称

onChargeSuccess

发送的数据

u_mid=liu&c_time=1449142044528&oid=123&ver=1&en=e_cs&pl=jdk&sdk=java

参数

类型

是否必填

描述

orderId

string

订单id

memberId

string

会员id

b) chargeRefund事件

当会员进行退款操作的时候触发该事件,该事件需要程序主动调用

2、集成方式:直接将java的sdk引入到项目中即可

3、数据参数说明

参数名称

类型

描述

en

string

事件名称, eg: e_cs

ver

string

版本号, eg: 0.0.1

pl

string

平台, eg: website

sdk

string

Sdk类型, eg: java

u_mid

string

会员id,和业务系统一致

c_time

string

客户端时间

oid

string

订单id

js sdk 数据收集引擎
本次的重点就是分析pc端的数据,七个模块基本上都需要从pc端获取不同的数据

新用户:在cookie中填充一个uuid来标示用户的唯一性(不用IP)

按照收集数据的不同分为不同的事件,比如pageview事件等。Js sdk的执行流程如下:

1、PC端事件分析

  • 用户基本信息:用户浏览行为信息分析,即 pageview事件
  • 浏览器信息分析以及地域信息分析:在用户基本信息分析的基础上添加浏览器和地域维度信息,其中浏览器信息我们可以通过浏览器的 window.navigator.userAgent 来进行分析,地域信息可以通过ip地址来进行分析,pageview事件也可以满足这两个模块的分析
  • 外链数据分析以及用户浏览深度分析:在pageview事件中添加当前页面url和前一个页面的url来处理分析,pageview事件也可以满足
  • 订单信息分析:要求pc端发送一个订单产生的事件,对应这个模块的分析,需要一个新的事件chargeRequest。对于事件分析我们也需要一个pc端发送一个新的事件数据,可以定义为event。除此之外,还需要设置一个launch事件来记录新用户的访问

不同事件发送的数据url格式如下,url中后面的参数就是我们收集到的数据:http://track.lv.com/static/bfimg.jpg?requestdata

最终分析模块

js sdk事件

用户基本信息分析

pageview事件

浏览器信息分析

地域信息分析

外链数据分析

用户浏览深度分析

订单信息分析

chargeRequest事件

事件分析

event事件

 

launch事件

 

 

 

 

 

 

 

 

 

a) Launch事件

用户第一次访问网站的时候触发该事件,不提供对外调用的接口

方法名称

-

发送的数据

u_sd=8E9559B3-DA35-44E1-AC98-85EB37D1F263&

c_time=1449137597974&ver=1&en=e_l&pl=website&sdk=js&b_rst=1920*1080&

u_ud=12BF4079-223E-4A57-AC60-C1A04D8F7A2F&

b_iev=Mozilla%2F5.0%20(Windows%20NT%206.1%3B%20WOW64)%20AppleWebKit%2F537.1%20

(KHTML%2C%20like%20Gecko)%20Chrome%2F21.0.1180.77%20Safari%2F537.1&

l=zh-CN

b) Pageview事件

用户访问页面/刷新页面的时候触发该事件,自动调用

方法名称

onPageView

发送的数据

ver=1&en=e_pv&pl=website&sdk=js&b_rst=1920*1080&

u_ud=12BF4079-223E-4A57-AC60-C1A04D8F7A2F&

b_iev=Mozilla%2F5.0%20(Windows%20NT%206.1%3B%20WOW64)%20AppleWebKit%2F537.1%20

(KHTML%2C%20like%20Gecko)%20Chrome%2F21.0.1180.77%20Safari%2F537.1&

l=zh-CN&u_sd=8E9559B3-DA35-44E1-AC98-85EB37D1F263&c_time=1449137597979&

ht=www.bb.com%3A8080&p_url=http%3A%2F%2Fwww.bb.com%3A8080%2Fvst_track%2Findex.html

c) chargeRequest事件

用户下订单的时候触发该事件,该事件需要程序主动调用

方法名称

onChargeRequest

参数

类型

是否必填

描述

orderId

string

订单id

orderName

String

产品购买描述名称

currencyAmount

double

订单价格

currencyType

String

货币类型

paymentType

String

支付方式

d) Event事件
当访客/用户触发业务定义的事件后,前端程序调用该方法

方法名称

onEventDuration

参数

类型

是否必填

描述

category

string

自定义事件名称

action

String

自定义事件动作

map

map

其他参数

duration

long

事件持续时间

2、其他api方法

方法名称

setMemberId() //设置会员id

方法描述

该方法的主要作用是设置会员id,当会员登录后,请调用该方法进行会员id的设置。

参数

类型

是否必填

描述

memberid

string

会员id

3、集成方式

引入js即可

4、数据参数说明

可能用到的参数描述如下:

参数名称

类型

描述

en

string

事件名称, eg: e_pv

ver

string

版本号, eg: 0.0.1

pl

string

平台, eg: website

sdk

string

Sdk类型, eg: js

b_rst

string

浏览器分辨率,eg: 1800*678

b_iev

string

浏览器信息useragent

u_ud

string

用户/访客唯一标识符

l

string

客户端语言

u_mid

string

会员id,和业务系统一致

u_sd

string

会话id

c_time

string

客户端时间

p_url

string

当前页面的url

p_ref

string

上一个页面的url

tt

string

当前页面的标题

ca

string

Event事件的Category名称

ac

string

Event事件的action名称

kv_*

string

Event事件的自定义属性,map

du

string

Event事件的持续时间

oid

string

订单id

on

string

订单名称

cua

string

支付金额

cut

string

支付货币类型

pt

string

支付方式

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值