大型电商日志离线分析系统(一)

一、项目需求分析

某大型网站日志离线分析系统

1.1 概述

该部分的主要目标就是描述本次项目最终七个分析模块的页面展示。

1.2 工作流

在我们的demo展示中,我们使用jquery+echarts的方式调用程序后台提供的rest api接口,获取json数据,然后通过jquery+css的方式进行数据展示。

步骤概述:
1、调用REST API:使用jQuery的$.ajax方法或者fetchAPI(如果您愿意的话)来调用后端提供的REST API,获取数据。
2、处理JSON数据:将获取到的JSON数据处理成ECharts支持的格式。
3、使用ECharts展示数据:将处理后的数据传递给ECharts图表实例,用于展示图表。
4、使用CSS进行样式定制:根据需要使用CSS来调整图表的样式或页面布局。

1.3 分析

1.3.1 总述

在本次项目中我们分别从七个大的角度来进行分析,分别是:
用户基本信息分析模块
浏览器信息分析模块
地域信息分析模块
用户浏览深度分析模块
外链数据分析模块
订单分析模块
事件分析模块
下面就每个模块进行最终展示的分析。
注意几个概念:
用户/访客:表示同一个浏览器代表的用户,非注册用户。
会员:表示网站的一个正常的会员用户,在平台尚注册过。
会话:一段时间内的连续操作,就是一个会话中的所有操作。
pv:访问页面的数量pageview。
uv:一个用户访问该网站。
在本次项目中,所有的计数都是去重过的。比如:活跃用户/访客,计算uuid的去重后的个数。

1.3.2 用户基本信息分析模块

用户基本信息分析模块主要是从用户/访客和会员两个角度分析浏览相关信息,包括但不限于新增用户,活跃用户,总用户,新增会员,活跃会员,总会员以及会话分析等。下面就各个不同用户信息角度来进行分析:

1.3.2.1 用户分析

该分析主要分析新增用户、活跃用户以及总用户的相关信息。
新访客:老访客(活跃访客中)=1:7~10
活跃用户,是相对于“流式用户”的一个概念,是指那些会时不时地光顾下网站,并为网站带来一些价值地用户。
简单理解就是经常访问该网站的用户,如浏览商品,下单,收藏等行为。
新增访客数:一天的独立访客中,历史第一次访问您网站的访问数;老访客数:今日之前有过访问,且今日再次访问的访客,记为老访客。

1.3.2.2 会员分析

该分析主要分析新增会员、活跃会员以及总会员的相关信息。

1.3.2.3 会话分析

该分析主要分析会话个数、会话长度和平均会话长度相关的信息。

1.3.2.4 hourly分析

该分析主要分析每天每小时的用户、会话个数以及会话长度的相关信息。

1.3.3 浏览器信息分析模块

在用户基本信息分析的基础上添加一个浏览器这个维度信息。

1.3.3.1 浏览器用户分析

同用户分析。

1.3.3.2 浏览器会员分析

同会员分析。

1.3.3.3 浏览器会话分析

同会话分析。

1.3.3.4 浏览器pv分析

分析各个浏览器的pv值。

1.3.4 地域信息分析模块

主要分析各个不同省份的用户和会员情况。

1.3.4.1 活跃访客地域分析

分析各个不同地域的活跃访客数量。

1.3.4.2 跳出率分析

分析各个不同地域的跳出率情况。
一个网站在某一段时间内有1000不同访客从这个链接进入,同时这些访客中有50个人没有二次浏览行为,直接退出网站,那么针对这个入口网址的跳出率就是50/1000=5%。

1.3.5 用户访问深度分析模块

该模块主要分析用户的访问记录的深度,用户在一个会话中访问页面的数量。
网站访问深度就是用户在一次浏览你的网站的过程中浏览了你的网站的页数。如果用户一次性的浏览了你的网站的页数越多,那么就基本上可以认定,你的网站有他感兴趣的东西。用户访问网站的深度用数据可以理解为网站平均访问的页面数,就是pv和uv的比值,这个比值越大,用户体验度越好,网站的粘性也越高。
此处uv可以理解为cookie中的uuid数量。

1.3.6 外链数据分析模块

主要分析各个不同外链端带来的用户访问量数据。
外链就是指在别的网站导入自己网站得到链接。导入链接对于网站优化来说是非常重要的过程。导入链接的质量(即导入链接所在页面的权重)间接影响了我们的网站在搜索引擎中的权重。
意义在于要不要做这个外链推广。

1.3.6.1 外链偏好分析

分析各个外链带来的活跃访客数量。

1.3.6.2 外链会话(跳出率)分析

分析会话相关信息,并计算相关会话跳出率的情况。

1.3.7 订单数据分析模块

主要分析订单的相关情况

1.3.8 事件分析模块

在本次项目中,只选用一个事件案例进行分析,就是订单相关的一个事件分析。

三、js sdk

3.1 概述

该文档的主要作用是为了开发人员参考可以参考本文档,了解js sdk的集成方法以及提供的各种不同的api。
注意:不采用ip来标示用户的唯一性,我们通过在cookie中填充uuid来标示用户的唯一性。
埋点:在页面(jsp或html)中植入js代码。
初级埋点:在产品流程关键部位植入相关统计代码,用来追踪每次用户的行为,统计关键流程的使用程度。
中级埋点:植入多段动作代码,追踪用户在该模块每个页面上的系统行为,事件之间相互独立。
高级埋点:联合公司工程、etl采集分析用户全量行为,建立用户画像,还原用户行为模型,作为产品分析,优化的基础。

3.2 执行工作流

在我们的js sdk中按照收集数据的不同分为不同的事件,比如pageview事件等。js sdk的执行流程如下:
在这里插入图片描述
用户进入网页。
判断是否有用户id。
如果没有,判断是否需要生成id,如果需要则生成id并保存在cookie中。
判断是否有会话id。
如果没有,生成会话id并保存在cookie中。
分支到两个操作:
触发PageView事件。
触发Launch事件。
执行了一系列事件处理,包括发送event事件、发送页面停留时间事件、发送页面关闭时的数据,以及可能的其他自定义事件处理。

3.3 数据参数说明

在各个不同事件中收集不同的数据发送到nginx服务器,但是实际上这些收集到的数据还是有一些共性的。下面将所有可能共用到的参数描述如下:
在这里插入图片描述
在这里插入图片描述

3.4 事件分析

3.4.1 概述

针对我们最终的不同分析模块,我们需要不同的数据,接下来分别从各个模块分析,每个模块需要的数据。
用户基本信息就是用户的浏览行为信息分析,也就是我们只需要pageview和launch事件就可以了;
浏览器信息分析以及地域信息分析其实就是在用户基本信息分析的基础上添加浏览器和地域这个维度信息,其中浏览器信息我们可以通过浏览器的window.navigator.userAgent来进行分析。
地域信息可以通过nginx服务器来收集用户的ip地址来进行分析,也就是说pageview事件也可以满足这两个模块的分析。
外链数据分析以及用户浏览深度分析我们可以在pageview事件中添加访问页面的当前url和前一个页面的url来进行处理分析,也就是说pageview事件也可以满足这两个模块的分析。
订单信息分析要求发送一个订单产生的事件,那么对应这个模块的分析,我们需要一个新的事件chargeRequest。
对于自定义事件分析我们也需要一个pc端发送一个新的事件数据,我们可以定义为event。除此之外,我们还需要设置一个launch事件来记录新用户的访问。
各种不同事件发送的数据url格式如下,其中url中后面的参数就是我们收集到的数据:http://www.itbaizhan.cn/logo.gif?requestd
ata k1=v1&k2=v2&…&kn=vn

3.4.2 Launch事件在这里插入图片描述

当用户第一次访问网站的时候触发该事件,不提供对外调用的接口,只实现该事件的数据收集。

3.4.3 Pageview事件

当用户访问页面/刷新页面的时候触发该事件。该事件会自动调用,也可以让程序员手动调用。

3.4.4 chargeRequest事件

当用户下订单的时候触发该事件,该事件需要程序主动调用。
相关参数如下:
在这里插入图片描述

3.4.5 Event事件

当访客/用户触发业务定义的事件后,前端程序调用该方法。
相关参数如下:
在这里插入图片描述

3.5 其它api方法

在这里只介绍设置会员id的方法,其它的辅助方法到时候编写js的时候再介绍
设置会员id
在这里插入图片描述

四、JAVA SDK

4.1 概述

该文档的主要作用是为了开发人员参考本文档,了解java sdk的集成方式以及提供各种不同的方法。注意:由于再本次项目中java sdk的作用主要就是发送支付成功/退款成功的信息给nginx服务器,所有我们这里提供的是一个简单版本的java sdk。

4.2 java sdk执行流

订单支付成功的工作流如下所示:(订单退款类似)
Controller(比如:servlet)调用该方法

4.3 程序后台事件分析

本项目中在程序后台只会触发chargeSuccess事件,本事件的主要作用是发送订单支付成功的信息给nginx服务器。发送格式同pc端发送方式,也是访问同一个url来进行数据的传输。格式为:
http://node1/logo.gif?requestdata
在这里插入图片描述

4.3.1 ChargeSuccess事件

当会员的订单最终支付成功的时候触发该事件,该事件需要程序主动调用。
参数说明:
在这里插入图片描述

4.3.2 ChargeRefund事件

当会员的订单退款操作的时候触发该事件,该事件需要程序主动调用。
参数说明:
在这里插入图片描述

4.3.3 集成方式

直接将java的sdk引入到项目中即可,也就是说在对应的java类中调用相关的方法。

4.3.4 数据参数说明

参数描述如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/411646.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【PostgreSQL】Windows安装PostgreSQL数据库图文详细教程

Windows安装PostgreSQL数据库图文详细教程 一、前言二、PostgreSQL简介三、软件下载四、安装步骤4.1 安装向导4.2 选择安装目录4.3 选择组件4.4 选择数据存放目录4.5 选择密码4.6 选择端口号4.7 等待安装完成4.8 取消勾选,安装完成 五、启动教程5.1 搜索pgAdmin4&am…

9.网络游戏逆向分析与漏洞攻防-游戏网络架构逆向分析-接管游戏连接服务器的操作

内容参考于:易道云信息技术研究院VIP课 上一个内容:游戏底层功能对接类GameProc的实现 码云地址(master 分支):https://gitee.com/dye_your_fingers/titan 码云版本号:44c54d30370d3621c1e9ec3d7fa1e2a0…

五种多目标优化算法(MSSA、MOJS、NSWOA、MOPSO、MOAHA)性能对比(提供MATLAB代码)

一、5种多目标优化算法简介 多目标优化算法是用于解决具有多个目标函数的优化问题的一类算法。其求解过程可以分为以下几个步骤: 1. 定义问题:首先需要明确问题的目标函数和约束条件。多目标优化问题通常涉及多个目标函数,这些目标函数可能…

ONLYOFFICE 8.0版本深度测评:革新之作还是失望之作?

引言 : 随着办公自动化需求的不断升级,拥有一款功能全面、操作便捷的办公软件显得尤为重要。在这个背景下,ONLYOFFICE作为一款集文档编辑、表格处理、演示制作等多功能于一体的办公套件,吸引了众多用户的关注。近期,O…

IO进程线程day8作业

信号灯集二次函数封装 sem.c #include<myhead.h>union semun {int val; /* Value for SETVAL */struct semid_ds *buf; /* Buffer for IPC_STAT, IPC_SET */unsigned short *array; /* Array for GETALL, SETALL */struct seminfo *__buf; /* B…

校园微社区微信小程序源码/二手交易/兼职交友微信小程序源码

云开发校园微社区微信小程序开源源码&#xff0c;这是一款云开发校园微社区-二手交易_兼职_交友_项目微信小程序开源源码&#xff0c;可以给你提供快捷方便的校园生活&#xff0c;有很多有趣实用的板块和功能&#xff0c;如&#xff1a;闲置交易、表白交友、疑问互答、任务兼职…

读书笔记之《没有工作的世界》:AI是否会取代人类?

《没有工作的世界—如何应对科技性失业与财富不平等》作者是 [英]丹尼尔苏斯金德&#xff0c; 原作名: A WORLD WITHOUT WORK&#xff1a;Technology,Automation,and How We Should Respond 丹尼尔苏斯金德&#xff08;Daniel Susskind &#xff09;&#xff1a;曾任英国首相战…

jvm面试题目补充

jdk&jre Java程序设计语言、Java虚拟机、Java API类库这三部分统称为JDK&#xff08;Java Development Kit&#xff09;。 把Java API类库中的Java SE API子集 [1] 和Java虚拟机这两部分统称为JRE&#xff08;Java Runtime Environment&#xff09;&#xff0c;JRE是支持…

python学习笔记 - 标准库函数

概述 为了方便程序员快速编写Python脚本程序&#xff0c;Python提供了很多好用的功能模块&#xff0c;它们内置于Python系统&#xff0c;也称为内置函数(Built-in Functions&#xff0c;BlF)&#xff0c;Python 内置函数是 Python 解释器提供的一组函数&#xff0c;无需额外导…

网络层的DDoS攻击与应用层的DDoS攻击之间的区别

DDoS攻击&#xff08;即“分布是拒绝服务攻击”&#xff09;&#xff0c;是基于DoS的特殊形式的拒绝服务攻击&#xff0c;是一种分布式、协作的大规模攻击方式&#xff0c;主要瞄准一些企业或政府部门的网站发起攻击。根据攻击原理和方式的区别&#xff0c;可以把DDoS攻击分为两…

“一代传奇”宗庆后谢幕,500亿元饮料帝国迎交棒时刻

宗庆后同志逝世 2月25日&#xff0c;娃哈哈集团发布讣告&#xff0c;娃哈哈创始人、董事长宗庆后同志&#xff0c;因病医治无效&#xff0c;于 2024-02-25 10:30 逝世&#xff0c;享年 79 岁。 这是一位伟大的企业家。 伟大的地方不仅仅在于&#xff0c;宗庆后 42 岁开始白手起…

【网站项目】437物流管理系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

Python字符串访问与拼接你搞懂了吗?

使用下标访问字符串&#xff0c;从0开始计数&#xff0c;-1表示最后一个字符。三种遍历字符串的方法&#xff1a;for循环、len()和enumerate()。字符串拼接只能是字符串之间使用&#xff0c;不能与数字拼接。 1.下标访问字符串 通过下标访问字符串的内容&#xff0c;下标从 0 …

蛋白结构预测模型评价指标

欢迎浏览我的CSND博客&#xff01; Blockbuater_drug …点击进入 文章目录 前言一、蛋白结构预测模型评价指标TM-scorelDDT 二、Alphafold中的评价指标pLDDTpTMPAE 三、AlphaFold-multimer 蛋白结构的评价指标DockQipTM 总结参考资料 前言 本文汇总了AlphaFold和AlphaFold-mul…

C语言函数递归

一、什么是递归 递归实际上就是函数自己调用自己。 递归在书写的时候&#xff0c;有2个必要条件&#xff1a; • 递归存在限制条件&#xff0c;当满足这个限制条件的时候&#xff0c;递归便不再继续。 • 每次递归调用之后越来越接近这个限制条件。 在下面的例子中&#xff0…

将一个 PostgreSQL 数据库复制到另一个数据库中

以管理员身份进入cmd窗口&#xff0c;输入如下命令 语法&#xff1a; pg_dump -C -h 本机IP -U 本机postgresql用户名 源数据库名 | psql -h 服务器IP -U 服务器postgresql用户名 目标数据库名 示例&#xff1a; pg_dump -C -h 127.0.0.1 -U postgres test01-dbname | psql…

leetcode:1925. 统计平方和三元组的数目(python3解法)

难度&#xff1a;简单 一个 平方和三元组 (a,b,c) 指的是满足 a2 b2 c2 的 整数 三元组 a&#xff0c;b 和 c 。 给你一个整数 n &#xff0c;请你返回满足 1 < a, b, c < n 的 平方和三元组 的数目。 示例 1&#xff1a; 输入&#xff1a;n 5 输出&#xff1a;2 解释…

AI绘画丨精美3D立体插图

利用衍纸艺术制作的3D立体精美插图&#xff0c;以星星作为主题&#xff0c;错落在整个画面中&#xff0c;一起看看他的生成关键词吧~ 使用关键词&#xff1a;A gorgeous multi-dimensional paper illustration, paper quilling, 3D diorama of a vintage stargazing illustrat…

JSON:简介与基本使用

目录 什么是JSON&#xff1f; JSON的基本结构 JSON的基本使用 在JavaScript中使用JSON 创建JSON对象 解析JSON字符串 生成JSON字符串 在其他编程语言中使用JSON 总结 什么是JSON&#xff1f; JSON&#xff0c;全称为JavaScript Object Notation&#xff0c;是一种轻量…

NCDA视觉传达设计大赛终极攻略:助你斩获佳绩

第十二届全国高校未来设计师数字艺术设计大赛&#xff08;NCDA&#xff09; A类&#xff1a;视觉传达设计 参赛对象&#xff1a; 大学生小组&#xff1a;分①研究生组②本科生组③专科生组&#xff0c;三组分别进行评审 教师小组&#xff1a;普通高校教师&#xff0c;不分小…