网站流量日志分析--统计分析--受访分析热门页面 topN|学习笔记

简介: 快速学习网站流量日志分析--统计分析--受访分析热门页面 topN

开发者学堂课程【大数据分析之企业级网站流量运营分析系统开发实战(第四阶段) 网站流量日志分析--统计分析--受访分析热门页面 topN】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/696/detail/12237


网站流量日志分析--统计分析--受访分析热门页面 topN


内容介绍

一、各页面访问统计

二、热门页面统计

 

一、各页面访问统计

1、统计分析的受访分析受访指的是受到访问网站哪个页面被别人浏览,因此它从页面角度开展分析。主要是针对数据中的 request 进行统计分析,比如各页面 PV,各页面 UV 等。

2、打开数据,跟受访相关的字段叫 request字段所描述的数就是指本次请求请求的是哪个资源,哪个页面如果想要更加精准统计需要把里面请求图片过滤掉,如果没有请求斜杠表示首页根据页面受访分析,也可以开展各种各样的的指标分析,比如各页面相关的基础指标统计,比如网站只有首页和两个详情页,统计今天到网站三个页面到底每个页面分别产生的 pv 多少uv 多少,统计pv根据页面进行分组分组完之后统计次数,count 即可如果统计 uv 就是统计的去ip,以上指标无非就是根据页面的字段 group by。因为在这种情况下页面就是分组维度例如:

统计各页面 pv,明确指标忽略静态资源的影响,就是不管请求图片还是请求什么都当做请求页请求页面的pv需要根据 request 进行分组相同到同一组,比如请求的是 git3图片,另外如果是同样的图片,就属于同一个页面,根据页面分组分组维度就是 request分完组之后进行 count 统计,统计出就是每个页面的pvuv如果 count request 统计就是 pv如果 count 去重的 ip 就是 uv

select request as request,count(request) as request counts from

ods_ weblog detail group by request having request is not null order by request counts desc limit 20;

 

二、热门页面统计

1、统计每日最热门的页面 top10

drop table dw. hotpages everyday;

create table dw. hotpages. everyday(day string,url string,pvs string);

insert into table dw hotpages, everyday

select '201 30918',a.request,a.request counts from

(select request as request,count(request) as request. counts from ods. weblog, detail where datestr= '20181101'

group by request having request is not null) a

order by a.request counts desc limit 10;

2、梳理出现 top n 问题想到 Over 分组函数,或者窗口函数

(1)数据表:dw_weblog_detail

每天的页面根据天气分组,根据的页面进行统计统计完之后,按照标号去记从需求上没有会话相关的概念,明显可以排除跟点击流相关的表,因此需要是 detail宽表

(2)分组维度:时间维度(day) day 比较特殊还是表的分区字段、页面维度(request)

天除了是分组字段以外宽表是分区表,123号哪一天还是分区字段特殊就使得计算指标的时候,可以采用更加方便的形式最热门页面top10,a页面b页面d页面c页面根据不同页面进行分组,所以还有第二个维度页面维度

(3)度量值:count(*)--->top10

3、打开画图板画一个宽表它是一个分区表分区维度就是天,20181101,当下数量数据等于20181101随着数仓引进值,2,3,4,20181102、20181103、20181104,当下场景想到row_number分组窗口函数可以根据进行分组pvs 进行排序,取前几个就是top几思路正确但是在当下需求中天非常的特殊统计每一天,不需要 group by 就可以找到每一天,因为天是分区字段

突破: day是表的分区字段通过 where 分区查询即可过滤出指定的day内容,

需要统计20181101,datestr=20181101即可再根据 request 的页面进行分组统计,统计完之后,取第十个就非常方便

4、写 sql

起别名分区过滤保证拿到的是这一天再次强调在序列中没有考虑静态资源的问题忽略它里面是图片还是 gs 都把它看成页面注意跟现实实际需求的区别,根据它进行分组完成之后,在每个组内进行count统计起别名如果想知道是哪个页面也可以把 t.request 写上计算没问题但是拿到的是所有的页面,所有的结果在数据中有些 request 为空,所以进行过滤,保证当中有空的不参加分组要的不是整体的热门页面,而是所有热门页面top10最多的前十个,把所有页面请求做倒序排序,只取前十条,就是 top10的问题排序完成之后它只要热门页面前十个或者热门页面前五个查询结果指定返回的条数非常方便的语法是 limit 语法这种方式计算比 row_number 方式计算更加方便整个问题的突破点在于时间维度的它是分区字段,如果统计每个小时热门页面那么就要使用 row_number 函数进行统计

select

t. request,count(*) as pvs

from dw. _weblog detail t where t.datestr ="20181101" group by t. request having

t.request is not null order by pvs desc limit 10;

复制指标执行20181101热门页面最多的是斜杠首页,比较符合客观规律,一家公司如果不出意外访问最多的的页面应该是首页如果要贴近实战过滤静态资源要再加一个条件where=true这是统计每天最热门页面时最佳简便的一种方式,结合数据考虑,不要死板的套用某些语法工具

5、保存数据结果打开的参考资料项目资料点击数据分析点击受访分析

image.png

(1)创建表为 dw_ hotpages_ everyday每天的热门页面,里面有字段url 就是 requestpvs首先创建临时表,或者中间表

create table dw_ hotpages_ everyday (day string,url string,pvs string)

(2)把查询语句结果进行 insert 插入嵌套查询,把查询的返回结果,做嵌套起个别名叫做 a,把 a 表只取前十条插入到创建的,相当于可以把数据结果保存方便后面的使用

insert into table dw_ hotpages_ everyday

select ' 20181101' ,a. request,a. request_ counts from

(select request as request, count (request) as request_ counts from dw_ weblog_ detail where datestr='20181101' group by request having request is not null ) a

order by a. request_ counts desc limit 10 ;

3复制语句打开 hive 终端进行执行创建完之后就可以打开创建验证数据是否被保存

Select from dw_hotpages_everyday

image.png

可以发现的数据已经被保存在页面上进行可视化展示报表将会非常方便,还可以做其他力度的精准控制,每小时每月每天每分每秒,如果有需要就可以进行 group by 分组统计,是受访页面的统计分析

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
9月前
|
人工智能 运维 监控
一招高效解析 Access Log,轻松应对泼天流量
一招高效解析 Access Log,轻松应对泼天流量
170 0
一招高效解析 Access Log,轻松应对泼天流量
|
PyTorch 算法框架/工具
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
本文介绍了PyTorch中的F.softmax()和F.log_softmax()函数的语法、参数和使用示例,解释了它们在进行归一化处理时的作用和区别。
1337 1
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
352 3
|
jenkins 持续交付
jenkins学习笔记之三:使用jenkins共享库实现日志格式化输出
jenkins学习笔记之三:使用jenkins共享库实现日志格式化输出
jenkins学习笔记之三:使用jenkins共享库实现日志格式化输出
|
监控 网络协议 CDN
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
3765 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
7月前
|
监控 容灾 算法
阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化
本文探讨了如何高效、经济且可靠地将海外应用与基础设施日志统一采集至阿里云日志服务(SLS),解决全球化业务扩展中的关键挑战。重点介绍了高性能日志采集Agent(iLogtail/LoongCollector)在海外场景的应用,推荐使用LoongCollector以获得更优的稳定性和网络容错能力。同时分析了多种网络接入方案,包括公网直连、全球加速优化、阿里云内网及专线/CEN/VPN接入等,并提供了成本优化策略和多目标发送配置指导,帮助企业构建稳定、低成本、高可用的全球日志系统。
825 54
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
367 9