Hive HQL支持2种查询语句风格


Posted in 数据库 onJune 25, 2022

背景

在平时业务运营分析中经常会提取数据,也就是大家俗称的Sql Boy,表哥表姐,各大公司数据中台现在大部分用的都是基于Hadoop的分布式系统基础架构,用的比较多的有Hive数据仓库工具,数据分析师在数据查询时用的就是HQL,语法与Mysql有所不同,基本每天都会写大量的HQL语句,但你有试过哪些风格的写法呢?哪种风格的查询语句更容易理解呢?可能不同的人有不同的看法,下面展示具体的风格代码样式,看看你喜欢哪种

  • Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统( Distributed File System),其中一个组件是HDFS(Hadoop Distributed File System)
  • hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。

风格一

这种风格大家都比较常用,从结果向源头倒着推,直接多层嵌套,一层一层往里面写,业务逻辑复杂的话有可能写很多层,达到几百行之多,目前很多公司在有数仓的支持下,基本嵌套的层数会比较少

select *
from
(
    (select *
    from a_temp
    where xxxx
    group by xxxx) as a
    left join 
    (select *
    from b_temp
    where xxxx) as b 
    on a.id=b.id
) temp
where xxxx
group by xxxx
order by xxxx

风格二

with a as(select *
        from a_temp
        where xxxx 
        group by xxxx),
     b as(select *
        from b_temp
        where xxxx)
select *
from a left join b on a.id=b.id
where xxxx 
group by xxxx
order by xxxx

这种风格是利用 with 语句,从源头向结果正向推,可以把 with 语句理解为建立了一个临时视图/表一样,后面的表引用前面的表,逻辑是正向推进

两种风格的区别

  • 风格一:用的最多,从结果向源头倒着推
  • 风格二:容易理解,从源头向结果正向推

以上就是Hive HQL支持2种查询语句风格的详细内容,更多关于Hive HQL查询语句风格的资料请关注三水点靠木其它相关文章!


Tags in this post...

数据库 相关文章推荐
redis连接被拒绝的解决方案
Apr 12 Redis
详解GaussDB for MySQL性能优化
May 18 MySQL
使用Redis实现实时排行榜功能
Jul 02 Redis
MySQL系列之十一 日志记录
Jul 02 MySQL
Redis如何实现分布式锁
Aug 23 Redis
为什么RedisCluster设计成16384个槽
Sep 25 Redis
MySQL数据库如何给表设置约束详解
Mar 13 MySQL
Redis如何实现验证码发送 以及限制每日发送次数
Apr 18 Redis
MySQL 字符集 character
May 04 MySQL
mysql 获取相邻数据项
May 11 MySQL
MySQL transaction事务安全示例讲解
Jun 21 MySQL
Hive日期格式转换方法总结
Jun 25 数据库
Hive日期格式转换方法总结
Jun 25 #数据库
PostgreSQL怎么创建分区表详解
Jun 25 #PostgreSQL
Mysql中的触发器定义及语法介绍
Jun 25 #MySQL
Hive常用日期格式转换语法
Jun 25 #数据库
MySQL数据库配置信息查看与修改方法详解
Jun 25 #MySQL
SQL语句中EXISTS的详细用法大全
Jun 25 #MySQL
Oracle数据库事务的开启与结束详解
Jun 25 #Oracle
You might like
php+oracle 分页类
2006/10/09 PHP
php中mysql连接方式PDO使用详解
2015/02/25 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
2020/05/25 PHP
JavaScript的事件绑定(方便不支持js的时候)
2013/10/01 Javascript
jQuery实现的Div窗口震动特效
2014/06/09 Javascript
JQuery $.each遍历JavaScript数组对象实例
2014/09/01 Javascript
jQuery中:header选择器用法实例
2014/12/29 Javascript
javascript中返回顶部按钮的实现
2015/05/05 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
JS判断字符串变量是否含有某个字串的实现方法
2016/06/03 Javascript
详解Javascript几种跨域方式总结
2017/02/27 Javascript
jQuery编写textarea输入字数限制代码
2017/03/23 jQuery
js实现图片旋转 js滚动鼠标中间对图片放大缩小
2017/07/05 Javascript
vue.js获得当前元素的文字信息方法
2018/03/09 Javascript
JS插入排序简单理解与实现方法分析
2019/11/25 Javascript
原生JavaScript实现换肤
2021/02/19 Javascript
以视频爬取实例讲解Python爬虫神器Beautiful Soup用法
2016/01/20 Python
详解python里使用正则表达式的分组命名方式
2017/10/24 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
2018/01/17 Python
pycharm使用matplotlib.pyplot不显示图形的解决方法
2018/10/28 Python
Python基本数据结构之字典类型dict用法分析
2019/06/08 Python
python并发爬虫实用工具tomorrow实用解析
2019/09/25 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
2020/03/18 Python
canvas压缩图片以及卡片制作的方法示例
2018/12/04 HTML / CSS
澳大利亚工具仓库:Tools Warehouse
2018/10/15 全球购物
应聘编辑职位自荐信范文
2014/01/05 职场文书
奶茶专卖店创业计划书
2014/01/18 职场文书
高一化学教学反思
2014/02/05 职场文书
小学毕业寄语大全
2014/04/03 职场文书
学生请假条
2014/04/11 职场文书
城南旧事电影观后感
2015/06/16 职场文书
走进科学观后感
2015/06/18 职场文书
南阳市白酒市场的调查报告
2019/11/08 职场文书
Mysql 8.x 创建用户以及授予权限的操作记录
2022/04/18 MySQL
国际最新研究在陨石中发现DNA主要成分 或由陨石带来地球
2022/04/29 数码科技
win10音频服务未响应怎么解决?win10音频服务未响应未修复的解决方法
2022/08/14 数码科技