网站流量日志分析--统计分析--多维统计分析--来访 referer、时间维度|学习笔记

简介: 快速学习网站流量日志分析--统计分析--多维统计分析--来访 referer、时间维度

开发者学堂课程【大数据分析之企业级网站流量运营分析系统开发实战(第四阶段) 网站流量日志分析--统计分析--多维统计分析--来访 referer、时间维度】学习笔记,与课程紧密联系,让用户快速学习知识。

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


网站流量日志分析--统计分析--多维统计分析--来访 referer、时间维度


1、按照 referer 来访和时间维度进行相关指标统计分析涉及到两个维度的聚集一个是 referer人从哪里来来访的维度一个是时间维度看具体的指标

2、--统计每小时各来访 url 产生的 pv 量对指标进行梳理确定维度数据表分组字段

3、梳理

按照来访维度、时间维度分析

统计每/时各来访 url 产生的 pv 量当中每和各都是敏感的字眼从分组维度分组字段的基础上小时和 url 是分组字段

数据表:dw_ weblog_ detail

每小时来访 url 这里不涉及 session 会话的概念排除点击流模型表优先考虑 detail 事实宽表

分组字段时间维度来访 refererurl

到数据中看是否有和来访相关的字段打开数据在 detail 表中浏览前面是时间后面有字段是 http referer而且 referer 还做了预处理把里面 host 和 path 做了提取referer 所表明的是从哪个网站哪个链接哪个页面可能来自于同一家公司网站但是来自于不同的页面因此 referer 字段是确实存在的

度量值count()

count* 统计 pvcountdistinctip 统计 uv指标都是互通的以 pv 做相关的例子

select

count(*) as pvs分完组之后每个组做一个 count 统计

from dw_weblog_ detail t where t . datestr ="20181101" group byt.hour ,t.http_ referer;宽表起别名分区过滤通过这一条件拿到今天的结果进行分组注意有两个维度顺序对结果没有影响只不过影响执行的过程refereru 如何写还要看表中是如何表示的

image.png

把表保存到临时表中

4、打开 sql 脚本中把今天的结果创建一个表保存下来表名是 dw_ pvs_ referer_ everyhour每小时来访的 referer 所 产生的 pvs需要 referer_urlreferer_hostmonthdayhourpvs 字段跟来访维度相关的有两个referer_urlreferer_host跟时间相关的有 monthdayhour最后一个是 pvs统计在查询时需要返回这些字段如果查询 count(*) 只满足最后一个字段url 是标准的格式host 是它当中的一部分既要取得 referer_url 又要取得 host需求是根据 referer_url 进行分组的要想出线 host必须出现在分组段中它出现是否会影响结果

select

t.http_ referer ,t.ref _host,count(*) as pvs

from dw_ weblog_ detail t where t.datestr ="20181101" group by

t.hour ,t.http_ referer,t.ref_ host;

要想让它出现在这里要如何解决它不是分组字段的问题现在执行会报错非法引用错误把 host 字段作为分组字段存在需要自己确定是否会对结果产生影响来自同一个网站同一个 host 不一定来自于同一页面需求是根据 referer 进行分组的来自于同一个页面同一个路径下当中的 host100%一样因此 host 出现不会改变最后的分组条件因为 t.http_ referer,t.ref_ host两个条件是包含关系最终起决定作用的是 referer 一样同一个 referer 中 host 一样反过来则不是为了前面能出现这个字段所以把 host 作为分组字段除了 referer 维度还有时间维度monthday 出现在分组中也不会影响结果分区过滤时指定的数据一定是 20181101,group by 接 monthday 都不会影响根据 hour 分才会起决定作用

5、回到 sql 脚本中

group by http_referer, ref_host , month , day , hour,前面两个字段属于来访维度后面三个字段属于时间维度因为 referer 中包含 host所以起决定作用的是 referer,referer 一样host 一定一样时间维度中起决定作用的是hourmonth 通过分区过滤一定相同所以这就保证了最终返回结果中可以出现month 以及 host但又不改变最终结果在做数据处理时发现有些 referer 是丢失的字段它所取得的 host 就是空的结果在业务中可能需要把空的排除出去进行过滤用 having 做分组过滤refhostisnotnull 留下来排除下来就是为空的最后进行排序是否排序根据需求定比如统计完之后根据它的倒序排序时间正序排序满足结果

from dw weblog_ detail

group by http_ referer,ref host , month , day , hour

having ref host is not null

order by hour asc,day asc , month asc,pv_ referer_ cnt desc ;

6、把 sql 进行保存创建中间临时表 pvs referer everyhour 复制建表语句打开 hive 终端做执行使用 insert 加 select 语句把分析的所选择的sql语句插入进去插入到创建的 pvs referer everyhour 中分区是20181101,从宽表中根据时间维度进行分组分组完把为空的过滤排序把排序结果插入到表中保证查询返回的字段跟待插入一致第一个字段是 referer 对应 url第二个字段是 host 对应hostmonthhourpv一一对应插入到数据就不会有错

7/执行没有过多的难度要心细思路要清晰确定在众多的分组字段中哪一个是起最终决定的查看结果Select from dw_ pvs_ referer everyhour limit 10;把反馈的结果在终端进行复制打开新的 notepad++页面粘贴就可以看到相关统计为了看的更清楚可以改为 select * from dw_pvs_referer_everyhour limit 20把结果复制出来

image.png

11月2号0点当中产生最多的是26.21.20等倒序排序还有1点,2点3点等每一个来访,

image.png

如上图是来访的 url 和来访的 host来自同一网站叫 blog. fens .me但是可能来自于不同的资源不同的路径反之如果来自同一个路径一定来自同一个网站url包含 hosturl 一样host 一样反之 host 一样url 不一定一样区分包含关系对分组的影响根据来访的 referer时间维度两个聚集统计相关的 pv 值把当中的 pv count 作为 count ip就是统计 uv 值来访的每小时 url 产生 pv 量

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
9月前
|
人工智能 运维 监控
一招高效解析 Access Log,轻松应对泼天流量
一招高效解析 Access Log,轻松应对泼天流量
174 0
一招高效解析 Access Log,轻松应对泼天流量
|
监控 网络协议 CDN
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
|
存储 Java 关系型数据库
基于JSP的九宫格日志网站
基于JSP的九宫格日志网站
|
监控 安全 前端开发
Nginx 访问日志中有 Get 别的网站的请求是什么原因?
Nginx 访问日志中有 Get 别的网站的请求是什么原因?
268 0
|
存储 弹性计算 监控
日志服务SLS最佳实践:通过SLS数据加工从VPC flowlog中过滤出跨region CEN流量
本文就通过一个客户的实际案例开介绍如何使用在无法直接开启CEN flowlog的情况下,使用SLS的数据加工能力,从VPC flowlog的数据中过滤出客户需要的流量日志出来。
641 0
日志服务SLS最佳实践:通过SLS数据加工从VPC flowlog中过滤出跨region CEN流量
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
3808 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
7月前
|
监控 容灾 算法
阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化
本文探讨了如何高效、经济且可靠地将海外应用与基础设施日志统一采集至阿里云日志服务(SLS),解决全球化业务扩展中的关键挑战。重点介绍了高性能日志采集Agent(iLogtail/LoongCollector)在海外场景的应用,推荐使用LoongCollector以获得更优的稳定性和网络容错能力。同时分析了多种网络接入方案,包括公网直连、全球加速优化、阿里云内网及专线/CEN/VPN接入等,并提供了成本优化策略和多目标发送配置指导,帮助企业构建稳定、低成本、高可用的全球日志系统。
834 54
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
373 9
|
10月前
|
存储 SQL 关系型数据库
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log、原理、写入过程;binlog与redolog区别、update语句的执行流程、两阶段提交、主从复制、三种日志的使用场景;查询日志、慢查询日志、错误日志等其他几类日志
834 35
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log