网站流量日志分析--数据预处理--点击流模型之 pageviews 模型| 学习笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 快速学习网站流量日志分析--数据预处理--点击流模型之 pageviews 模型

开发者学堂课程【大数据分析之企业级网站流量运营分析系统开发实战(第二阶段)网站流量日志分析--数据预处理--点击流模型之 pageviews 模型】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/694/detail/12191


网站流量日志分析--数据预处理--点击流模型之 pageviews 模型

内容介绍

一、  模型概述

二、  模型剖析

三、  模型实现

四、  模型小结

 

一、  模型概述

接下来学习点击流模型当中的第一个模型 pageviews 模型,通过这一个节学习来了解 pageviews 模型主要侧重于哪些方面,以及如何通过原始数据一步步生成这个模型。

pageviews 模型侧重于用户每次会话的识别,就是首先要找到他到底属于几个会话,然后每次绘画内访问了几步和每一步的停留时间,一次会话内可能打开一步,也可能打开100步,每一步的停留时间。指标看上去比较多,到底怎么去实现pageviews 模型,为了更好的理解,通过去画图的方式进行梳理。

1.  大致步骤:

(1)  在所有访问日志中找出该用户的所有记录;

(2)  把该用户的所有访问记录按照时间正常排序;

(3)  计算前后两条记录时间差是否为30分钟。如果小于30分钟,则是同一会话session 的延续;如果大于30分钟,则是下一会话 session 的开始;

(4)  用前后两条记录时间差算出上一步停留的时间;

(5)  最后一步和只有一步的,业务默认指定页面停留时间60s

首先打开画图板,首先来模拟一下原始的访问日志数据,原始访问的数据是一个散点状的数据,站在时间的角度上不断追加就可以了。举个例子,比如说有一个用户叫做192.168.1.100用户,他在早上83025秒,访问网站的a页面,这是第一条记录,写这三个简单的属性;过了十秒钟,在83035的时候,又访问了c页面;又过了一会儿,83105,又访问了d页面,只要这个用户不断的访问下去,这个日志就按照时间属性不断追加,但是有一点要注意,在100用户访问的同时,其他的用户也会来访问。

接下来比如说有一个叫做200的用户他也来访问了,他的访问的时间会不会比上一个的时间小,会不会在日志当中出现一个下一个的时间比上一个小,一定不会,因为日志是按照时间属性不断追加的,那么两条记录要么是相等,要么下面的大,不可能时间上面大,下面小,那就变成乱序了,所以说下一个时间肯定是比上一个的时间大或和它相等的不可能比它小。比如在83135的时候访问了e页面,同时100用户接着来访问,在83125访问了w页面,这时候要注意,在83145,还是这两个用户,100用户上午不来访问了,然后下午再来访问。比如在下午,他在183105又过来访问了,访问了k页面,然后继续来访问;在183130的时候访问了m页面,不断下去,这就是原始的访问日志,叫做按照访问的时间追加,是散点状的数据满43点到的数据,接下来看如何通过原始的数据梳理成点击流模型的第一个模型pageviews模型。

 

二、  模型剖析

看一下模型的侧重点,来剖析一下这个模型叫做点击流模型之 pageviews 模型数据,非常重视以下几个概念。

(1)  会话识别。原始的日志当中并没有会话的概念,前面讲到以前

后两条记录的时间差是否在30分钟以内来判断会话。

(2)  会话内访问了几步,涉及到步骤的概念。属于同一个绘画的,

按照时间排序。

(3)  每一步的停留时间。比如说现在访问一个网站需要四步,那么

第一步停留了多长时间呢,要想客观的知道用户停留多长时间,暂时是不知道的。

但是通过日志可以去反推一下,比如说进入第一步的时间是8:00,进入第二步的时间是8:01,那么进入下一步的时间直接减去进入上一步的时间,就是停留时间。这样就可以算出来了,但是这么计算的问题是最后一步没有判断依据了。进入时间是知道的,但是不知道多长时间离开了,这时候就需要默认值来指定。

再比如说有的用户,今天只打开一个页面,那么这时候停留时间就无法计算。这时候遇到的问题叫做针对计算不出指标,通常采用业务默认指定。停留时间根据公司实际情况,默认事件是60s。从这一点同样可以感受到点击流模型是业务模型,而不是客观存在的模型。这是点击流模型pageviews的相关约束,接下来研究怎么实现。

 

三、  模型实现

左边是原始数据,右边是点击流模型pageviews数据。要想去生成数据是必须通过原始的日志的,生成它的步骤如下:

1.  找出属于同一个用户的所有访问日志记录。

(1)  因为点击流模型数据的会话是跟人相关的,不可能把张三的记

录和李四的记录放在一起来算一下他们到底属于几个规划。

(2)  怎么做:

在数据当中是用IP来表示用户,如果以m码编程来处理的话,如何把相同用户的记录聚集到一起:在m码中把IP作为k,而且作为k之后,相同的k按照m码的默认属性会分到同一个reduce当中来进行调用。在这里先找到100用户的记录和200用户的记录,第一步操作完成,即找出同一个用户的所有记录。

image.png

 

2.  把该用户的所有访问记录按照时间排序

要判断该用户今天产生了多少个会话,如果直接以时间差相减来判断,但是发现比如8-18点会出现负数,所以不能直接以时间差相减。这里应该先排序,在判断之前,把该用户的所有记录按照时间的正序进行排序。比如排完完之后是这样子的,8:00的应该在前面。

3.  判断时间差是否在30分钟以内

100用户为例,另外一个一样,排序之后就可以用下一条的记录减去上一条的记录判断时间差是否在30分钟以内。通过这个数据来看一下,这个属于两次会话,这是属于一个会话,叫做会话一,写个标识;下面这个属于另外一个会话,这样就可以判断出来几个规划了,打个标识,上面这个叫session1,下面的叫session2

image.png

这样就是两个 session 会话,有了会话之后,只完成了 pageviews 模型的第一步。

4.  在每个会话内进行步骤号的标识,并且计算每一步的页面停留时

如果有些步骤号计算不出来,就需要默认指定。这时候就可以在这里达标,使用一个字段叫step步骤号,在这当中进行了三步,那么下面就应该重新开始打,这样就符合规定了。有了步骤号之后还需要停留时间,停留时间叫做stayTime,写一个伪代码timei-timei-1),就是当前这一条记录的时间减去上一条的时间就是页面停留时间。如果计算不出来就要默认指定,第一步停留时间是我们8:30:35-8:30:25,就是十秒钟,在stepTime写十秒;下面这个8:31:05-8:30:35,是30秒。

最后一步的停留时间就不能直接相减了,直接默认时间60秒,叫做业务默认指定。下面是18:31:30-18:30:05是多25秒;最后一个还是默认值60秒,这样就计算出来了每一步的停留时间。

image.png

 

四、  模型小结

上述步骤就产生了点击流模型的 pageviews 模型,其中 IP表示用户;sessionid 表示属于哪个会话;page 表示页面;time 表示时间;step 表示步骤号;staytime 表示停留时间。有了这几个字段之后,接下来填充模型。

比如说首先是会话一,就是会话一相对应的几条记录,都是100用户;页面就是把对应的几个页面拿过来;访问时间也一样就是把对应的时间填充过来;接下来就是绘画,这三条数据都属于同一个会话,就是说它们都是同一个sessionsession1;步骤号也同样把对应的数据填充即可;停留时间就是刚才计算的停留时间,填充后再进行简单规划,就变成一个表的模型了,每一个字段,每一个属性都具备了,这一个表的结构模型就是点击流模型中的 pageviews 模型,这个模型所专注的就是会话的识别,步骤号以及每一步的停留时间,正好与它的专注的特点相对应,通过以上步骤就可以生成 pageviews 模型。

image.png

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
存储 运维 监控
超越传统模型:从零开始构建高效的日志分析平台——基于Elasticsearch的实战指南
【10月更文挑战第8天】随着互联网应用和微服务架构的普及,系统产生的日志数据量日益增长。有效地收集、存储、检索和分析这些日志对于监控系统健康状态、快速定位问题以及优化性能至关重要。Elasticsearch 作为一种分布式的搜索和分析引擎,以其强大的全文检索能力和实时数据分析能力成为日志处理的理想选择。
152 6
|
2月前
|
SQL 存储 人工智能
阿里云日志服务的傻瓜式极易预测模型
预测服务有助于提前规划,减少资源消耗和成本。阿里云日志服务的AI预测服务简化了数学建模,仅需SQL操作即可预测未来指标,具备高准确性,并能处理远期预测。此外,通过ScheduledSQL功能,可将预测任务自动化,定时执行并保存结果。
84 3
|
7月前
|
C++ 开发者 Python
实现Python日志点击跳转到代码位置的方法
本文介绍了如何在Python日志中实现点击跳转到代码位置的功能,以提升调试效率。通过结合`logging`模块的`findCaller()`方法记录代码位置信息,并使用支持点击跳转的日志查看工具(如VS Code、PyCharm),开发者可以从日志直接点击链接定位到出错代码,加快问题排查。
|
2月前
|
监控 网络协议 CDN
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
|
6月前
|
存储 Java 关系型数据库
基于JSP的九宫格日志网站
基于JSP的九宫格日志网站
|
7月前
|
存储 人工智能 运维
SLS 大模型可观测&安全推理审计标准解决方案
本文介绍大模型可观测&安全推理审计解决方案和Demo演示,SLS 提供全面的 LLM 监控和日志记录功能。监控大模型使用情况和性能,自定义仪表盘;SLS 汇总 Actiontrail 事件、云产品可观测日志、LLM 网关明细日志、详细对话明细日志、Prompt Trace 和推理实时调用明细等数据,建设完整统一的大模型可观测方案,为用户的大模型安全推理审计提供全面合规支持。
104699 1
|
7月前
|
监控 安全 前端开发
Nginx 访问日志中有 Get 别的网站的请求是什么原因?
Nginx 访问日志中有 Get 别的网站的请求是什么原因?
98 0
|
7月前
|
存储 弹性计算 监控
日志服务SLS最佳实践:通过SLS数据加工从VPC flowlog中过滤出跨region CEN流量
本文就通过一个客户的实际案例开介绍如何使用在无法直接开启CEN flowlog的情况下,使用SLS的数据加工能力,从VPC flowlog的数据中过滤出客户需要的流量日志出来。
148 0
日志服务SLS最佳实践:通过SLS数据加工从VPC flowlog中过滤出跨region CEN流量
|
1月前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
271 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
6天前
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。