网站流量日志分析--统计分析--基础指标统计分析(vv、ip)|学习笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 快速学习网站流量日志分析--统计分析--基础指标统计分析(vv、ip)

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

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


网站流量日志分析--统计分析--基础指标统计分析(vv、ip)


内容介绍

一、访向次数(VV)

、IP

 

一、访向次数(VV)

会话次数指今天到网站产生多少次会话在一次会话中它可能只有一步操作也可能有多步操作只要这些操作时间差在30分钟以内即可

一天之内的会话次数session 数

1、数据表:ods_ click_ stream visit

不能使用宽表这里需要统计会话的次数打开宽表在宽表中没有跟会话相关的概念在 dv 中介绍了一个所谓的点击流模型在点击流模的两个表中型中一个叫 pageviews一个叫 visitsession 概念因此基于指标的计算不能再是宽表使用宽表再去识别筛选也可以但是操作量和难度比较大明确了数据来自于点击流之后还要进行取舍因为点击流模型有两张表要搞清两个表之间的关系pageviews是对原数据中每一条记录做会话的识别visit 对同一个会话的 session 做聚集在一个会话内不管有10部还是8部还是几部都会聚集成一条因此从 session 字段看在 pageviews 可能会存在重复的 session一个会话有多条记录而在 visit 中根据 session 做了聚集只要第一步和最后一步变成一条数据所以它没有重复的因此基于统计会话的次数两个表都可以使用但是差距在于用 pageviews 统计 session 的次数需要对 session 做 distinct 去重而 visit 不需要去重从效率的角度看应该用 visit基于分析 vv 指标不再是宽表而是点击流模型的 visit 表

2、分组字段分组条件,时间( day) day 比较特殊还是表的分区字段通过 where 分区过滤即可。

通过对点击流模型的梳理发现它也是分区表分区也是天一天之内

3、度量值计:count(session) 如果使用 ods_click_pageviews 进行计算 count(distinct session)

这就是两个表的区别不用 distinct 效率会更高一点

select

count(t.session) as vv统计出的结果访问次数

from ods_ click_ stream visit t where t. datestr="20181101";

不是宽表点击流模型的 visit 表为了方便起名叫 t因为数据和宽表的数据一样分区信息也一样也要结合在企业中的具体情况确定

在 hive 中执行得出结果是57,也就是今天有57个会话计算比较精准

 

二、IP

1、ip 曾经可以表示用户跟 uv 指标比较相似当下再表示用户不准确

select count(distinct remote addr) as ips from ods weblog detail where datestr ="20181101";

在表中直接进行 distinct 去重即可

2、ip 一天之内不重复的 ip 个数

跟上述的 uv 计算一样

select

count(distinct remote addr) as ip

from dw_ weblog_ detail t where t. datestr="20181101";

3、现在计算的四个指标只会出现在 hive 的终端上因此 show tables 并没有吧计算结果保存下来相当于临时计算的结果后面需要展示数据可视化总不能去执行分析所以在企业中对于指标通常去创建一个中间表或者临时表把数据记录下来选择项目的第四个数据分析中的第一个基础指标多维统计

 image.png

打开之后可以看到执行的各种 sql,重点是创建一个表叫做基础指标的基本信息表表名字叫做 webflow basic info 网站流量基础信息表

drop table dw_ webflow_ basic_ info;

create table dw_ webflow_ basic_ info (month string , day string ,

pv[ bigint,uv bigint,ip bigint,vv bigint) partitioned by (datestr string) ;

分区相当于计算出的一批基础标插入到表中之后需要计算时比较方便,

insert into table dw_ webflow_ basic_ info partition (datestr="20181101")

select

'201811' ,'01' ,a.*,b.* from

(select count(*) as pv, count (distinct remote_ addr) as uv, count (distinct remote_ addr) as ips

from dw_ weblog_ detail

where datestr ='20181101') a join

(select count (distinct session) as vv3 from ods_ click_ stream_ visit where datestr ="20181101") b;

执行再次强调创建表名在企业中一个表的表名通常建议以简短的英文便于理解的英文表示不要写汉语拼音复制粘贴到 hive 终端创建了一个表接下来用 insert 把四个查询语句结果插入到创建的 dw webflow basic info 表中指定分区是20181101,从宽表中统计出 pv uv 和 ip通过点击流模型 visit 表统计出 count vv把两个结果做一个 join联合起来把结果插入到 dw_ webflow_ basic_ info 表中非常简单明细的方案如果不了解 join 语句也可以分别执行四个语句分别进行插入相当于做了一个整合

基础指标结果保存入库:

drop table dw_ webflow_ basic_ info;

create table dw_ webflow_ basic_ info (month string,day string,

pv bigint,uv bigint,ip bigint,vv bigint) partitioned by (datestr string) ;

insert into table dw_ webflow_ basic_ info partition (datestr="20181101")

select '201811' ,'01' ,a.*,b.* from

(select count(*) as pv , count (distinct remote_ addr) as uv, count (distinct remote addr) as ips

from dw_ weblog_ detail

where datestr ='20181101') a join

(select count (distinct, session) as vvs from ods_ click_ stream_ visit where datestr ="20181101") b;

进入终端进行执行输入showtables查看是否成功输入 select*from dw_ webflow_ basic_ info得到基础信息为了方便也可以复制出来到 notepad++打开新的页面

image.png

可以发现的得到了20181101的基础信息pv 是13770,uv 是1027,ip 是1027,vv 是57,随着每天项目的不断维护每天都会得到基础信息表那么进行对比分析模型展示柱状图折线图就非常方便基础指标分析对于业务的解读极其重要

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
电子书阅读分享《Elasticsearch全观测技术解析与应用(构建日志、指标、APM统一观测平台)》
电子书阅读分享《Elasticsearch全观测技术解析与应用(构建日志、指标、APM统一观测平台)》
|
30天前
|
运维 监控 Cloud Native
一行代码都不改,Golang 应用链路指标日志全知道
本文将通过阿里云开源的 Golang Agent,帮助用户实现“一行代码都不改”就能获取到应用产生的各种观测数据,同时提升运维团队和研发团队的幸福感。
|
3月前
|
监控 网络协议 CDN
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
|
6月前
|
存储 弹性计算 运维
可观测性体系问题之Process Layer在ECS稳定性平台中的工作如何解决
可观测性体系问题之Process Layer在ECS稳定性平台中的工作如何解决
45 0
|
7月前
|
存储 Java 关系型数据库
基于JSP的九宫格日志网站
基于JSP的九宫格日志网站
|
8月前
|
监控 安全 前端开发
Nginx 访问日志中有 Get 别的网站的请求是什么原因?
Nginx 访问日志中有 Get 别的网站的请求是什么原因?
102 0
|
8月前
|
存储 SQL 数据采集
通过定时SQL提取阿里云API网关访问日志指标
背景阿里云API网关服务提供API托管服务,提供了强大的适配和集成能力,可以将各种不同的业务系统API实现统一管理。API网关同时支持将API访问日志一键存储到日志服务,通过日志服务强大的查询分析能力,用户可以针对访问日志自定义计算多种指标,监测服务运行情况。继而通过定时SQL将结果指标直接存储到时...
通过定时SQL提取阿里云API网关访问日志指标
|
8月前
|
存储 弹性计算 监控
日志服务SLS最佳实践:通过SLS数据加工从VPC flowlog中过滤出跨region CEN流量
本文就通过一个客户的实际案例开介绍如何使用在无法直接开启CEN flowlog的情况下,使用SLS的数据加工能力,从VPC flowlog的数据中过滤出客户需要的流量日志出来。
158 0
日志服务SLS最佳实践:通过SLS数据加工从VPC flowlog中过滤出跨region CEN流量
|
2月前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
395 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
20天前
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。