网站流量日志分析--统计分析--受访分析热门页面 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实时生图绘板
相关文章
|
7月前
|
监控 安全 搜索推荐
使用EventLog Analyzer进行日志取证分析
EventLog Analyzer助力企业通过集中采集、归档与分析系统日志及syslog,快速构建“数字犯罪现场”,精准追溯安全事件根源。其强大搜索功能可秒级定位入侵时间、人员与路径,生成合规与取证报表,确保日志安全防篡改,大幅提升调查效率,为执法提供有力证据支持。
264 0
|
9月前
|
监控 安全 NoSQL
【DevOps】Logstash详解:高效日志管理与分析工具
Logstash是ELK Stack核心组件之一,具备强大的日志收集、处理与转发能力。它支持多种数据来源,提供灵活的过滤、转换机制,并可通过插件扩展功能,广泛应用于系统日志分析、性能优化及安全合规等领域,是现代日志管理的关键工具。
1326 0
|
11月前
|
自然语言处理 监控 安全
阿里云发布可观测MCP!支持自然语言查询和分析多模态日志
阿里云可观测官方发布了Observable MCP Server,提供了一系列访问阿里云可观测各产品的工具能力,包含阿里云日志服务SLS、阿里云应用实时监控服务ARMS等,支持用户通过自然语言形式查询
1569 0
阿里云发布可观测MCP!支持自然语言查询和分析多模态日志
|
10月前
|
人工智能 运维 监控
Aipy实战:分析apache2日志中的网站攻击痕迹
Apache2日志系统灵活且信息全面,但安全分析、实时分析和合规性审计存在较高技术门槛。为降低难度,可借助AI工具如aipy高效分析日志,快速发现攻击痕迹并提供反制措施。通过结合AI与学习技术知识,新手运维人员能更轻松掌握复杂日志分析任务,提升工作效率与技能水平。
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
4629 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
521 9
|
11月前
|
监控 容灾 算法
阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化
本文探讨了如何高效、经济且可靠地将海外应用与基础设施日志统一采集至阿里云日志服务(SLS),解决全球化业务扩展中的关键挑战。重点介绍了高性能日志采集Agent(iLogtail/LoongCollector)在海外场景的应用,推荐使用LoongCollector以获得更优的稳定性和网络容错能力。同时分析了多种网络接入方案,包括公网直连、全球加速优化、阿里云内网及专线/CEN/VPN接入等,并提供了成本优化策略和多目标发送配置指导,帮助企业构建稳定、低成本、高可用的全球日志系统。
1064 54
|
存储 SQL 关系型数据库
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log、原理、写入过程;binlog与redolog区别、update语句的执行流程、两阶段提交、主从复制、三种日志的使用场景;查询日志、慢查询日志、错误日志等其他几类日志
1094 35
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log
|
存储 缓存 关系型数据库
图解MySQL【日志】——Redo Log
Redo Log(重做日志)是数据库中用于记录数据页修改的物理日志,确保事务的持久性和一致性。其主要作用包括崩溃恢复、提高性能和保证事务一致性。Redo Log 通过先写日志的方式,在内存中缓存修改操作,并在适当时候刷入磁盘,减少随机写入带来的性能损耗。WAL(Write-Ahead Logging)技术的核心思想是先将修改操作记录到日志文件中,再择机写入磁盘,从而实现高效且安全的数据持久化。Redo Log 的持久化过程涉及 Redo Log Buffer 和不同刷盘时机的控制参数(如 `innodb_flush_log_at_trx_commit`),以平衡性能与数据安全性。
811 5
图解MySQL【日志】——Redo Log

热门文章

最新文章