基于订单路径树方法落地电商用户的购物行为分析

1.订单路径树的定义

用户从打开某网站到最终下单所点击的路径为订单路径树。

比如:打开某电商app或者网站到最终下单的路径,大部分用户的路径为:

(1)主页-搜索页-商详页-加购-下单(搜索下单路径)

640?wx_fmt=png640?wx_fmt=png640?wx_fmt=png

(2)首页-列表页-商详页-加工-下单(列表页下单路径)

640?wx_fmt=png640?wx_fmt=png640?wx_fmt=png

(3)当然用户也可以进行其他的无规则的点击,最终加购下单,都会生成用户从点击到购买的路径行为。

2.订单路径树的作用

(1)可以统计某个点击位的引单效果的好坏

(2)可以统计某个广告位的引单效果的好坏

(3)转化率好坏

(4)....

3.订单路径树的生成逻辑

通过上面理解,可以看到主要涉及到用户的点击操作和最终订单生成,构建成一个完整订单路径。

因此主要需要两类数据:(1)点击流数据,即:用户的点击行为数据  (2)订单流数据

用户的点击行为数据实时上报到kafka:cl

cl 包含关键字段字段:cts(客户端时间)、rts(服务端时间)、eventid(点击位唯一标示)、uid(用户唯一id)、pv_sid(访次)、param(参数)

下单数据实时上报至kafka:od

od 包含关键字段:orderId、skuIds(sku列表)、uId(会话id)

因为cl只含有点击点击位信息,需要关联埋点方案表信息,埋点方案表涵盖:eventId(点击位唯一标示)、pageNum(页面唯一编号)、加购标示。

第一步:接入cl、od实时流数据(注意做幂等处理,cl根据所有字段生成唯一标示MD5化,od根据oderid作唯一处理),加载埋点数据至内存

第二步:对cl数据进行处理,联上paNum,再根据paNum相对应的加购与否,如果是加购点就去解析sku

(1)生成点击路径树(普通点击)

每个key一个hset保存当前uid+pv_sid 的路径信息   关键clKey: c+“|”+uid+“|”+pv_sid

(2)生成加购路径树(加购点击)

逻辑为:拷贝点击路径树至加购路径树,关键addCartKey: ac+"|"+uid+"|"+sku

640?wx_fmt=png

(3)订单路径树(加购路径树+订单流进行关联)

拷贝加购路径树至订单路径树,关键odKey:oc+"|"+orderId+"|"+sku

640?wx_fmt=png

至此订单路劲树生成完成,格式为:

0,data;1,data;2,data;....    其中0处为加购点

最终订单路径树结果可以写入到kafka(进行计算引入订单),也可写入到hbase或者hdfs(导入到hive进行查询)

订单找回率:订单路径树中的订单/订单表中的订单 (大概率在90%以上),部分原因是因为用户在不同端加购和购物导致uid和pv_sid不同

文中用到的技术:kafka、redis、hbase

(1)hbase的rowkey设计:md5加密

(2)hbase有ttl功能,因为点击路径树只需要保存24小时,加购路径树保存15天;时间设置可以修改根据需求修改,主要是节约存储资源,比如说mysql需要删除处理,所以选用hbase的原因,写入数据量较大,查询的时候根据rowkey进行查询,非常实用hbase的应用场景。

4.订单路径树优化升级方案

上述订单路径树方案存在的问题:

(1)数据延迟上报  上报顺序: a1(ctm1)、a2(ctm2)、b(加购 ctm) ctm1<ctm<ctm2 最后生产的路径树:b ,而实际路径树应该为a1、b

(2)数据量太大,hbase存储的扩展字段进行修改比较耗时。

因此做了如下优化:

(1)数据先进来保存10分钟再排序一起处理,解决延迟上报问题

(2)最新N条数据存redis(包括扩展字段),其他数据的扩展字段存hbase,因为最新数据需要进行频繁修改。


至此订单路径树生成完毕,可以使用订单路径树数据对用户订单行为进行分析、对广告的引单效果进行分析以及转换率进行分析。

订单路径树不仅仅对电商场景分析有用,对外卖(下单)、酒店、旅游(下单),甚至对电影或者视频网站也可以进行分析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 基于Spark的用户行为分析系统的代码可以包含以下几个方面的实现: 1. 数据采集:通过编写Spark Streaming代码实时采集网站的用户行为数据,例如浏览品、下单、支付等行为数据,可以使用Kafka作为消息队列来接收数据。 2. 数据清洗和预处理:对采集到的用户行为数据进行清洗和预处理,去除无效数据,处理缺失值、异常值等,以确保数据质量和准确性。 3. 数据存储:将预处理后的数据存储到Hadoop分布式文件系统(HDFS)或者NoSQL数据库(如HBase、Cassandra)中,以便后续的离线分析。 4. 数据分析:利用Spark的分布式计算能力,编写Spark SQL或Spark DataFrame代码对存储在HDFS或NoSQL数据库中的用户行为数据进行离线分析,如用户留存率分析用户购买路径分析、热门品推荐等。也可以使用Spark MLlib进行用户行为的机器学习建模,例如通过用户历史数据构建推荐模型。 5. 可视化展示:将分析结果通过数据可视化工具(如ECharts、D3.js)展示出来,生成各类图表、报表,以便业务人员进行数据解读和决策。 在代码实现过程中,可以利用Spark提供的各种接口和算子,如Spark Streaming实现实时数据采集和处理,Spark SQL和DataFrame实现数据分析和查询,Spark MLlib实现机器学习算法,以及各类数据连接器和工具来处理数据存储和可视化展示。还需要注意分布式计算中的数据分区和并行计算,以优化Spark作业的执行性能。 ### 回答2: 基于Spark的用户行为分析系统的代码主要包括以下几个模块: 1. 数据预处理模块:这个模块用于将原始的用户行为数据进行清洗和处理,例如去除无效数据、处理缺失值、转换数据格式等。代码中会使用Spark的DataFrame API或SQL语句来完成数据的预处理工作。 2. 特征提取模块:这个模块用于从用户行为数据中提取有效、有意义的特征供后续的分析使用。代码中会使用Spark的特征提取工具库,如MLlib或ML库,来进行特征的提取和转换。 3. 用户行为分析模块:这个模块用于基于提取的特征对用户行为数据进行分析,例如用户购买行为的预测、用户兴趣分类等。代码中会使用机器学习算法,如分类、回归、聚类等,来进行用户行为分析和预测。 4. 结果可视化模块:这个模块用于将分析得到的结果可视化展示,以便用户更直观地理解分析结果。代码中会使用数据可视化工具,如Matplotlib、Seaborn或Plotly等,来进行结果的可视化展示。 5. 分布式计算模块:这个模块用于实现Spark的分布式计算能力,以支持对大规模数据集的处理和分析。代码中会使用Spark的分布式计算框架,如Spark Core或Spark SQL,来实现分布式计算任务。 总之,基于Spark的用户行为分析系统的代码主要包括数据预处理、特征提取、用户行为分析、结果可视化和分布式计算等模块。通过这些模块的组合和调用,能够构建一个高效、可扩展的用户行为分析系统,实现对用户行为的深入理解和预测。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值