网站流量日志分析--统计分析--独立访客分析|学习笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 快速学习网站流量日志分析--统计分析--独立访客分析

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

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


网站流量日志分析--统计分析--独立访客分析


1、需求描述:按照时间维度比如小时统计独立访客及其产生的 pv

对于独立访容的识别,如果在原始日志中有用户标识,则根据用户标识即很好实现;此处,由于原始日志中并没有用户标识,以访客 IP 模拟,技术上是一样的,只是精确度相对较低。

访客分析指的是以用户从人的角度看待访问网站的一些相关情况指标的计算访客分析的核心重点就是如何识别人到网站的用户有很多有张三李四王五如何知道它是谁的记录这就涉及到访客的识别,这时打开数据在收集的数据跟人相关的两个字段一个是用户的 id一个是用户的标识但是数据用户的标识是缺失字段没有数据用户标识可以用 cookie id 表示比如每人到网站上访问都可以生成唯一的 cookie idcookie id 表示是不同的访客这两个字段需要达成共识它们两个表示都没有问题技术上都是完全一样的

image.png

只不过精准度上区别因为一个 ip 背后可能表示不同的人比如163.177.71.12163.177.71.12是一个人还是两个人都不一定所以需要沟通好这个是访客识别有访客之后访客维度跟其他维度的组合进行相关的指标计算跟页面维度相组合跟时间维度甚至跟时间页面维度相组合举例统计每个人产生的Pv有多少这种情况下只跟人相关统计每个人每小时来访的网站网站随时切换就涉及到多个维度的组合

2、打开参考资料点击访客分析

image.png

需求:按照时间维度来统计独立访客及其产生的 pv 量(按照小时

时间维度:时

drop table dw_ user_ dstc_ ip_ h;

create table dw_ user dstc_ ip_ h(

Remote_ addr string,"

Pvs bigint,

Hour string);

insert into table dw_ user_ Dstc_  ip_ h。

select remote_ addr,count(1) as pvs,concat(month,day,hour) as hour

from ods _ weblog_ detaile

Where datestr=’ 20181101’

(1)数据表:dw_ weblog. Detail

统计每小时访独立访客及其产生的pv量跟点击流模型没有关系因为里面不涉及到会话次数的概念再次强调是业务模型没有会话使用不到

(2)分组字段:时间维度(hour)、访客维度(remote_ addr)

每个小时一天有一点两点三点二十四个小时在一点张三李四也可以一小时不可能都是一个人的记录所以在每个小时还要根据人进行分组分析出张的李的王五的所以还有访客的维度

(3)度量值:count()

确定关键字跟所操作的表起别名进行分组进行分组时时间维度和访客维度是并列的维度两个维度的先后顺序对结果不会产生影响只会影响最终执行的过程因此可以先小时也可以先访客根据两个维度分组完之后进行统计统计完之后看是哪个小时把查询式写上无论是小时还是访客都是分组字段所以出现在表达式中不会报错进行倒序排序进行执行

select

t. hour ,t. remote_ addr ,count(*) as pv

from dw_ weblog_detail t where t.datestr ="20181101" group by t .hour

t.remote_ addr order by t . hour ,p desc ;

3、打开 hive 终端进行执行计算出每个小时的 ip 产生的 pv可以看到23点的打开参考资料点击访客信息创建中间表

create table dw user_ dstc_ ip_ h(

remote_ addr string ,

Pvs bigint ,

Hour string) ;

从宽表中进行分组根据小时和 ip参考资料中是把 monthdayhour 做了concat 拼接根据拼接进行分组如果把拼接去掉直接根据 monthdayhour 进行分组需求是根据小时进行分组如果数据干净整洁对结果没有影响因为前面的字段保护了它通过 where 条件得到20181101,不管怎么分一定是11月的不能是12月的根据天怎么分一定是1号的不能是2号的因此 month 和 day 分等于没有分最终起决定作用的还是 hourhour不一样就到不同的分组中统计完后根据 hour 的正序 pvs 倒序进行排序最终才有 insert 加 select 语句

insert into table dw_ user_ dstc_ ip_ h

select remote_ addr , count(1) as pvs , concat (month, day ,hour) as hour

from dw weblog detail

Where datestr= '20181101"

group by concat (month , day ,hour) , remote_ addr

order by hour asc,pvs desc ;

复制打开 hive 终端进行执行为了验证表是否正确可以进行查询

select *from dw_user dstc_ip_h

列举出每个小时采集pv 大概数据情况数据就可以非常方便的在页面上做相关的执行

4、在上述基础之上,可以继续分析,比如每小时独立访客总数

select count(1) as dstc_ ip_ cnts ,hour from dw_ user_ dstc_ ip_ h group by hour ;

时间维度:日

select remote_ addr ,count(1) as counts , concat (month,day) as day

from dw_ weblog_ detail

Where datestr='20181101 '

group by concat (month,day) , remote_ addr;

时间维度:

select remote_ addr , count(1) as counts , month

from dw_ weblog_ detail

group by month, remote_ addr ;

每个小时每天做个累加也可以分组时把天去掉每个月的都非常类似统计每天把小时去掉统计每月把天去掉或者做累加在独立访客分析重点需要注意两个知识点一个是独立访客的识别问题用哪个字段表示访客第二个就是分组维度多为分析的问题确定分组维度就可以写sql语句其他都比较简单跟之前的分析类似

 

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
监控 网络协议 CDN
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
|
6月前
|
存储 Java 关系型数据库
基于JSP的九宫格日志网站
基于JSP的九宫格日志网站
|
7月前
|
监控 安全 前端开发
Nginx 访问日志中有 Get 别的网站的请求是什么原因?
Nginx 访问日志中有 Get 别的网站的请求是什么原因?
100 0
|
7月前
|
存储 弹性计算 监控
日志服务SLS最佳实践:通过SLS数据加工从VPC flowlog中过滤出跨region CEN流量
本文就通过一个客户的实际案例开介绍如何使用在无法直接开启CEN flowlog的情况下,使用SLS的数据加工能力,从VPC flowlog的数据中过滤出客户需要的流量日志出来。
154 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简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
358 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
15天前
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
|
2月前
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
335 3
|
25天前
|
存储 监控 安全
什么是事件日志管理系统?事件日志管理系统有哪些用处?
事件日志管理系统是IT安全的重要工具,用于集中收集、分析和解释来自组织IT基础设施各组件的事件日志,如防火墙、路由器、交换机等,帮助提升网络安全、实现主动威胁检测和促进合规性。系统支持多种日志类型,包括Windows事件日志、Syslog日志和应用程序日志,通过实时监测、告警及可视化分析,为企业提供强大的安全保障。然而,实施过程中也面临数据量大、日志管理和分析复杂等挑战。EventLog Analyzer作为一款高效工具,不仅提供实时监测与告警、可视化分析和报告功能,还支持多种合规性报告,帮助企业克服挑战,提升网络安全水平。
|
2月前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1712 14
|
1月前
|
存储 监控 安全
什么是日志管理,如何进行日志管理?
日志管理是对IT系统生成的日志数据进行收集、存储、分析和处理的实践,对维护系统健康、确保安全及获取运营智能至关重要。本文介绍了日志管理的基本概念、常见挑战、工具的主要功能及选择解决方案的方法,强调了定义管理目标、日志收集与分析、警报和报告、持续改进等关键步骤,以及如何应对数据量大、安全问题、警报疲劳等挑战,最终实现日志数据的有效管理和利用。
112 0

热门文章

最新文章