网站流量日志分析--统计分析--sql 补充扩展--如何编写 hive sql|学习笔记

简介: 快速学习网站流量日志分析--统计分析--sql 补充扩展--如何编写 hive sql

开发者学堂课程【大数据分析之企业级网站流量运营分析系统开发实战(第四阶段)网站流量日志分析--统计分析--sql 补充扩展--如何编写 hive sql】学习笔记,与课程紧密联系,让用户快速学习知识。

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


网站流量日志分析--统计分析--sql 补充扩展--如何编写 hive sql


1、学习如何编 hive sql 语句以及看到别人写的 sql 语句如何把握重点和关键点针对大数据分析查询的本质或者分析的本质落到 sql 层面就是 select因此以select 查询语句为例如何查询编写 sql

2、在查询中有 group byhavingwherelimit 等字段在什么时间出现查询语句的关键字 select当找到 select 之后 from 关键字很重要直接影响接下来操作的是什么因为 from 后跟的是一个表如果这个表存在这个表不存在各种不同的结果

Select

count(*) as nums每个性别的人数

Fromt_user_t用户表为了方便起别名

--需求:统计来自于北京男女各有多少人(性別空的排除)并且按照人数的倒数迸行排序。

3、表是全国的用户表有北京上海浙江河南,安徽要求只来自于北京的在操作之前进行过滤过滤只要求北京的

Select

count(*) as nums

Fromt_user_t

where t.city = "beijing'分组前过滤只要北京

4、这是个不规律的表当中性别字段有男有女但是在进行人口统计时性别是丢失的字段性别可能存在空需要把性别为空的排除掉And is not null从性别上考虑没有问题从性能上考虑当把性别过滤放在where中意味把全国所有的性别为空都排除掉了只需要排除北京的性别为空所以就不能写在 where 中where 和 having 的区别一个是分组前全局过滤一个是分组后过滤就是过滤的范围不一样

Select

count(*) as nums

Fromt_user_t

where t.city = "beijing'

group by t.sex

having t.sex is not null

5、按照人数的倒数进行排序人数就是统计的 nums可以编写 sql 了

Select

count(*) as nums

Fromt_user_t

where t.city = "beijing'

group by t.sex

having t.sex is not null

order by nums desc;

6、如果返回的数据有限制返回 n 条

Select

count(*) as nums

Fromt_user_t

where t.city = "beijing'

group by t.sex

having t.sex is not null

order by nums desc;

limit n;

这是编写查询语句的 sql或者是看别人 sql 的标准套路

7、小结

如何編写査看 select 句。

Select

count(*) as nums

Fromt_user_t

where t.city = "beijing'

group by t.sex

having t.sex is not null

order by nums desc;

limit n;

重点: select 确定之后,立马寻找 from 关键字,因为 from 后面跟的就是操作的表。返回字段count 字段没有这个表就是白写先确定表再根据业务确定表达式

--表可能是真实存在的表,如果是真实的表,直接操作使用。

--表也可能不存在,比如 t_user 表是根据两个表 join 而来的用户信息有一个a表一个 b 表a 和 b 表进行关联才能构成 t_user 通过查询把这个表变出来基于这个虚拟的表再进行操作比如 t_user 不存在假表没有 t_user,可以通过 a 和 b 查询得到它

from (

select 写关键字

a.*,b.* 返回 a 字段 b 字段

from a join b on a.id = b.id

where . . .如果需要就过滤

)t

t 表不是真实存在的表而是 a 和 b 查询变出来的表t 表就是一个虚拟的表

通过查询语句把 t 表变出来再基于 t 表进行外面的操作from 重要的原因就在于此

select

a.*,b.*

from a join b on a.id = b.id

where . . .

如果发现是小括号基本上可以确定表是一个虚拟的表查询出来的表如果只是一个表名那么表肯定真实的存在不管是写 sql 还是看 sql立马要寻找 from 关键字当把表的内容弄清楚之后接下来表怎么操作就是业务的问题了

--只有表确定之后在结合业务确定查询返回的字段或者表达式。

--嵌套子查询,先执行里面的查询语句,后执行外部的查询语句。

有可能 a 表和 b 表还不存在a 表来自于 c 和 db 表来自于 e 和 f在嵌套语句里面继续嵌套但是嵌套过多无意义理解嵌套的思想编写 sql 关键字的寻找以及具体的语法规则弄清楚很重要

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
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共享库实现日志格式化输出
|
SQL 分布式计算 Hadoop
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
283 2
|
监控 网络协议 CDN
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
|
安全 Linux 调度
【后台开发】TinyWebser学习笔记(4)定时器、日志系统(单例模式)、封装互斥锁信号量
【后台开发】TinyWebser学习笔记(4)定时器、日志系统(单例模式)、封装互斥锁信号量
142 1
|
存储 Java 关系型数据库
基于JSP的九宫格日志网站
基于JSP的九宫格日志网站
|
JSON 中间件 数据格式
Gin框架学习笔记(六)——gin中的日志使用
Gin框架学习笔记(六)——gin中的日志使用
1066 0
|
存储 弹性计算 监控
日志服务SLS最佳实践:通过SLS数据加工从VPC flowlog中过滤出跨region CEN流量
本文就通过一个客户的实际案例开介绍如何使用在无法直接开启CEN flowlog的情况下,使用SLS的数据加工能力,从VPC flowlog的数据中过滤出客户需要的流量日志出来。
641 0
日志服务SLS最佳实践:通过SLS数据加工从VPC flowlog中过滤出跨region CEN流量