网站流量日志分析--统计分析--多维统计分析--时间维度--每小时指标统计|学习笔记

简介: 快速学习网站流量日志分析--统计分析--多维统计分析--时间维度--每小时指标统计

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

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


网站流量日志分析--统计分析--多维统计分析--时间维度--每小时指标统计


1、打开资料项目资料数据分析基础指标多维统计

image.png

2、多维度统计分析:注意 gruop by 语句的语法

多维度统计 PV 总量

第一种方式:直接在 dw. weblog_ detail 单表上进行查询

计算该处理批次(一天)中的各小吋 pvs

3梳理

时间维度统计

计算该处理批次(一天)中的各小吋 pvs,页面被点击加载的次数跟点击流模型中的会话第一步第二步停留时间也没有太多关系优先考虑 detail 宽表

(1)数据表:dw_ weblog_ detail

(2)分组字段时间day hour一天当中包含多个小时day 字段比较特殊day 是表分区字段可以通过 where 过滤查找统计完真正有意义起决定作用的是 hour 统计每小时

就是维度一天不是处理昨天也不是处理后天是处理当天因此分组段是时间维度的分组段打开宽表查看最后是以天分区,20181101。

image.png

(3)度量值count(*)

直接统计*就相当于把里面不管是静态资源的请求还是动态资源都当做页面被加载的点击次数想要更加贴近于实战应该加各过滤条件valid 等于 true把静态资源过滤掉由于项目数据本身比较小所以做了妥协但是要清楚背后发生了什么

image.png

跟宽表起别名该数据批次是1000,天是分区字段通过t.分区字段可以找到这一天因此针对天这个指标不需要分组直接通过 where 即可如果数据是干净纯净一定得到的是111日的数据得到这一天的数据还要进行分组得到各个小时一天有24个小时分为24个部分每个部分中再进行 count 统计写的时候要根据小时分组确定表中有没有 hour 字段打开宽表数据查看宽表中有用户标识时间日期monthdayhour可以感受到进行入库时生成宽表就是为了分析的方便现在把hour踢出来变成一个新的字段直接进行 hour 分组即可不管是六点四十九分还是六点五十分的都属于六点就该来到同一分组中

image.png

按照一天中小时分组就会分成24小时每个小时进行 count 统计

select

count(*) as pvs

from dw_weblog_ detail t where t.datestr ="20181101" group by t.hour ;

在 hive 中执行验证得到每个小时的 pvs但是看不出来是哪个小时的pvs所以在查询上显示出属于哪个小时需要把 hour 字段出现在 select 表中注意group by 分组语法因为 hour 是分组字段所以可以出现在表达式中再执行在七八九小时中pvs 点击比较多大概在早上的七八点钟网站的访问量比较多可能是新闻门户类的网站早高峰大家都在浏览

image.png

但是如果写完就结束意味着数据并没有保存下来输入 show tables 进行查看计算的指标并没有保存在数仓中因此在实际的开发过程中指标和模型数据为了方便临时表记录下来需要时就不用再执行 sql直接用即可。

4创建中间表也叫临时表有个小技巧就是创建临时表或者别的表不要用汉语拼音进行命名比如 time1,time2在企业中一般建议用简单的英文表示表的含义比如创建一个表一天当中每个小时的 pvs这个表是一个分区表根据时间进行分区

drop table dw_ pvs_ everyhour_ oneday;

create table dw_ pvs_ everyhour_ oneday (month string,day string,hour string,pvs bigint) partitioned by (datestr string) ;

insert into table dw_ pvs_everyhour_oneday partition (datestr= '20181101')

select a.month as month,a.day as day,a.hour as hour, count(*) as pvs from dw_ weblog_ detail a 在宽表进行操作分区过滤

Where a.datestr='20181101' group by a . month,a.day,a . hour; 注意分组字段对结果的影响

计算每天的 pvs

drop table dw_ pv3_ everyday;

create table dw_ pvs_ everyday (pvs bigint , month string,day string) ;

insert into table dw_ pv3_ everyday

select count(*) as pvs,a.month as month,a.day as day from dw_ weblog_ detail a group by a . month,a.day;

复制create table dw_ pvs_ everyhour_ oneday (month string,day string,hour string,pvs bigint) partitioned by (datestr string) ;执行返回的字段有两个一个是 hour一个是 pvs而这个表中是 month需要保证查询反馈的结果字段类型顺序个数跟它对应上

要想返回 month day hour 比较简单因为数据表中正好有 month day如果分组字段不错

select

t.day,t.hour ,count(*) as pvs

from dw. _weblog detail t where t.datestr ="20181101" group by t.hour;

执行后报错在 compiling 编译期间的错误,Invalid column referenceday‘非法的字段引用day

--直接报错Invalid column referenceday‘

--想一想sql 语句 groupby 有什么样的语法限制问题

出现在 groupby 语句表达式中的字段要么是分组的字段要么是被聚合函数包围应用的字段这是所谓的语法限制

需要进行相关的调整不能这样引用day 既不是分组的字段也不是聚合函数包围的字段如果直接写 t.month t.day 肯定会报错需要针对两个字段进行调整比如放在分组字段 groupby 后面本意是根据 hour 进行分组结合具体环境进行分析在当下环境中加入分组字段不会改变结果因为 where 指定过滤是20181101的数据如果数据干净整洁纯洁没有被污染的数据保证得到的是20181101这一天的数据根据月份分是11月一个整体根据day分还是1号整体因此字段的出现保证了 month day 对结果没有影响最终起决定作用的是 hour它俩的出现保证字段可以出现在前面不会报错执行

image.png

在数据中人为的把一号变成了二号对于后面的指标计算比较方便

5、把查询结果插入到创建的 pvs everyhour 中分组根据 month day hour 进行分组三个中真正起决定作用的是 hourmonthday 无效但是可以出现在表达式中统计 pvs四个字段拆入到创建的表中完成数据保证复制到 hive 终端执行看结果打开临时表看数据有没有保存进去select * from dw pvs_ everyhour_ oneday;显示每一天的 pvs 数十一月中每个小时产生的 pvs可以进行最终页面的报表展示第一个需求是统计每个小时的 pvs重点是 sql 语句语法的掌握灵活运用到业务中

image.png

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
运维 监控 Cloud Native
一行代码都不改,Golang 应用链路指标日志全知道
本文将通过阿里云开源的 Golang Agent,帮助用户实现“一行代码都不改”就能获取到应用产生的各种观测数据,同时提升运维团队和研发团队的幸福感。
655 131
|
9月前
|
人工智能 运维 监控
一招高效解析 Access Log,轻松应对泼天流量
一招高效解析 Access Log,轻松应对泼天流量
174 0
一招高效解析 Access Log,轻松应对泼天流量
|
PyTorch 算法框架/工具
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
本文介绍了PyTorch中的F.softmax()和F.log_softmax()函数的语法、参数和使用示例,解释了它们在进行归一化处理时的作用和区别。
1352 1
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
|
jenkins 持续交付
jenkins学习笔记之三:使用jenkins共享库实现日志格式化输出
jenkins学习笔记之三:使用jenkins共享库实现日志格式化输出
jenkins学习笔记之三:使用jenkins共享库实现日志格式化输出
|
监控 网络协议 CDN
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
|
存储 弹性计算 运维
可观测性体系问题之Process Layer在ECS稳定性平台中的工作如何解决
可观测性体系问题之Process Layer在ECS稳定性平台中的工作如何解决
137 0
|
前端开发
会员系统02--,后台管理系统,包含网站运营,统计分析,用户中心,财务管理,资金明细,系统管理,参数配置,后台管理系统可以观看配置资料,广告位的相关资料,客服工单最主要是客户反馈给我们的问题,登录统计
会员系统02--,后台管理系统,包含网站运营,统计分析,用户中心,财务管理,资金明细,系统管理,参数配置,后台管理系统可以观看配置资料,广告位的相关资料,客服工单最主要是客户反馈给我们的问题,登录统计
|
JSON 中间件 数据格式
Gin框架学习笔记(六)——gin中的日志使用
Gin框架学习笔记(六)——gin中的日志使用
1066 0

热门文章

最新文章