毕业项目-电商用户行为分析

发布时间:2022-06-28 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了毕业项目-电商用户行为分析脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

电商用户行为分析

 

[author]  lishan

tips:由于时间和篇幅有限项目具体实现细节就不展开、本项目的数据均为mock数据作为学习使用并无影响,商相关日志数据网上很多,可以自己寻找一个便于自己项目开发的数据。

一、环境准备

  1. 系统centos6.5

  2. hadoop2.7.3

  3. Xshell5

  4. hive1.2.1

  5. MySQL

  6. spark2.0.1(需提前配置scala环境):取代MR作为计算引擎

  7. keTTLe:ETL工具、本项目主要用于业务数据的迁移

  8. flume1.7.0:flume的版本很重要,一定要与自己环境兼容(大二的时候踩过这个坑,一周都未找到原因

  9. FineReport:国内的报表工具主要用于指标可视化展示

二、项目架构简介

  1. 架构图 🙆‍♂ 重要!!!

    毕业项目-电商用户行为分析

     

  2. kettle整合hadoop

     

    毕业项目-电商用户行为分析

 

3. 维度建模与数仓分层

维度建模是专门应用于分析型数据库 数据仓库 数据集市建模的方法。数据集市可以理解为是一种"小型数据仓库"。

常见的模型分为三种:

  • 星型模型

  • 雪花模型

  • 星座模型

    本次毕业设计项目采用的星型模型也是大多数公司所采用的模型

数据分层每个企业根据自己的业务需求可以分成不同的层次,但是最基础的分层思想,理论上数据分为三个层,数据运营层 数据仓库层和数据服务层。基于这个基础分层之上添加新的层次,来满足不同的业务需求。

一般较为完善的分层是分为五层的:即ODS、DWD、DWS、DM、ADS

由于本次毕业设计项目模型比较简单就没有分的那个细,也没有必要,所以本次分为三层:

  • ODS:数据贴

  • DM:数仓层,对数据进一步ETL

  • ADS:应用层,提供数据产品和数据分析

4. 业务系统数据模型表说明

业务系统大概分为十张表:

表名中文表名
orders 订单表
order_goods 订单明细表
goods 商品信息表
shops 店铺表
goods_cats 商品分类表
org 组织结构表
order_refunds 订单退货表
users 用户表
user_address 用户收货地址表
payments 支付方式表

业务数据由linux系统的mySQL通过kettle抽取到hive对应hDFs路径,最后在数仓中做一个分区合并即可,先全量抽取一天的数据,后面的业务数据采用增量的形式抽取到数仓中。

  1. 日志系统数据模型说明

随着网站在技和运营上的不断技术发展,人们对数据的要求越来越高,以求实现更加精细的运营来提升网站的质量。所以数据的获取方式也随着网站技术的进步和人们对网站数据需求的加深而不断地发展。从使用发展来看,主要分为2类:

  • 网站日志文件(LOG files)

  • 页面埋点js自定义采集

    由于日志数据通常数据量都是非常大的,而且需要实现动态采集的方法,所以本项目采用fume做数据的采集和迁移

    tip:数据是网上的mock数据,文件格式为txt

     

    日志内容样例:

    f5dd685d-6b83-4e7d-8c37-df8797812075 222.68.172.190 - - 2018-11-01 14:34:57 "GET /images/my.jpg HTTP/1.1" 200 19939 "http://www.Angularjs.cn/A00n" "Mozilla/5.0 (Windows NT 6.1) Applewebkit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36"
  1. 数据存储位置

    毕业项目-电商用户行为分析

 

毕业项目-电商用户行为分析

三、业务数据指标开发

  1. 时间维度分析业务开发

    需求如下

    • 统计xxxx年期间每个季度的销售订单笔数、订单总额

    • 统计xxxx年期间每个月的销售订单笔数、订单总额

    • 统计xxxx年期间每周一到周日的销售订单笔数、订单总额

    • 统计xxxx年期间国家法定节假日、休息日、工作日的订单笔数、订单总额

    由于需要区分不同日期类型,就需要一张日期维度表来区分不同日期类型

    时间维度表实现:kettle+http://timor.tech/api/holiday/info/接口、具体实现方法就不赘述了,内容有点多。

    指标开发流程:建立ads表,利用hql计算指标,将数据导入到ads的表中

  2. 订单分析地域、分类维度分析业务开发

    需求如下:

    • 交易金额

    • 交易笔数

    • 微信交易笔数

    • 支付宝交易笔数

    • 全国、无商品分类不分支付类型维度分析

    • 全国、无商品分类分支付类型维度分析

    指标开发流程:dw建表(维度表、事实表)--->sparksql计算--->导入到ads表中

  3. 用户订单指标业务开发

    需求如下:

    • 电商平台往往需要根据用户的购买数据来分析用户的行为

    • 根据用户的消费行为习惯,给运营部门提供用户分析数据指标

    • 主要围绕订单表开展分析

    指标开发流程:与上面的大同小异,但是需要说明一点就是数据处理的时候还存在一些表的操作,具体业务具体分析,所以在本文并没有提及

四、日志系统指标开发

  1. 基础指标

    需求如下:

    PageView浏览次数(pv

    • 用户每打开1个网站页面,记录1个PV。用户多次打开同一页面PV累计多次。通俗解释就是页面被加载的总次数。

    unique VisITor独立访客(UV)

    • 1天之内,访问网站的不重复用户数(以浏览器cookie为依据),一天内同一访客多次访问网站只被计算1次。

    访问次数(VV)

    • 访客从进入网站到离开网站的一系列活动记为一次访问,也称会话(session),1次访问(会话)可能包含多个PV。

    IP

    • 1天之内,访问网站的不重复IP数。一天内相同IP地址多次访问网站只被计算1次。曾经IP指标可以用来表示用户访问身份,目前则更多的用来获取访问者的地理位置信息。

    平均访问频度

    • 平均每个独立访客一天内访问网站的次数(产生的session个数), 平均访问频度=访问次数/独立访客数

    人均浏览页数(平均访问深度)

    • 平均每个独立访客产生的浏览次数。人均浏览页数=浏览次数/独立访客。

    平均访问时长

    • 平均每次访问(会话)在网站上的停留时间。体现网站对访客的吸引程度。平均访问时长=访问总时长/访问次数。

    跳出率

    • 跳出率是指用户到达你的网站上并在你的网站上仅浏览了一个页面就离开的访问次数与所有访问次数的百分比。是评价网站性能的重要指标。

    访客分析

    受访分析

    指标开发流程:将spark ETL处理后的数据导入到数仓中,做好分层数据的处理,利用hql做指标的计算(计算引擎是用的spark),最后将指标数据导入到ads层对应的表中。

五、指标的可视化展示(报表形式)

  1. 将业务和日志系统中计算出的指标,通过kettle迁移到linux系统的mysql中(由于我的集群是用虚拟机做的,而我的电脑内存不够用了,所以我将指标数据迁移到本地机器的mysql中,方便与可视化系统对接)

  2. 可视化工具很多如国外开源的suPErset,而我用的是国内的帆软报表FineReport(主要是实习的时候做过比较熟)也是一个非常强大的报表工具,配置好本地数据源后通过托拉拽组件的形式,就完成报表的开发(其本质还是通过帆软自己设计的前端渲染系统,将我们设计的报表渲染成一个前端网页,大大节省了开发成本

  3. FineReport编辑界面如下:

     

    毕业项目-电商用户行为分析

     

  4. 最终可视化效果如下:

毕业项目-电商用户行为分析

脚本宝典总结

以上是脚本宝典为你收集整理的毕业项目-电商用户行为分析全部内容,希望文章能够帮你解决毕业项目-电商用户行为分析所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。