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...

数据库 相关文章推荐
PostgreSQL存储过程实用脚本(二):创建函数入门
Apr 05 PostgreSQL
SQL Server2019数据库之简单子查询的具有方法
Apr 27 SQL Server
mysql在项目中怎么选事务隔离级别
May 25 MySQL
MySQL Router实现MySQL的读写分离的方法
May 27 MySQL
Navicat for MySQL的使用教程详解
May 27 MySQL
mongodb清除连接和日志的正确方法分享
Sep 15 MongoDB
MySQL基础快速入门知识总结(附思维导图)
Sep 25 MySQL
sql时间段切分实现每隔x分钟出一份高速门架车流量
Feb 28 SQL Server
解决 Redis 秒杀超卖场景的高并发
Apr 12 Redis
mysql如何查询连续记录
May 11 MySQL
Redis过期数据是否会被立马删除
Jul 23 Redis
面试官问我Mysql的存储引擎了解多少
Aug 05 MySQL
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应用提速面面观
2006/10/09 PHP
教你如何把一篇文章按要求分段
2006/10/09 PHP
PHP分页显示制作详细讲解
2008/11/19 PHP
PHP simple_html_dom.php+正则 采集文章代码
2009/12/24 PHP
php打造属于自己的MVC框架
2012/03/07 PHP
ThinkPHP使用心得分享-分页类Page的用法
2014/05/15 PHP
php如何连接sql server
2015/10/16 PHP
Symfony2框架创建项目与模板设置实例详解
2016/03/17 PHP
jquery $(document).ready() 与window.onload的区别
2009/12/28 Javascript
基于jQuery的动态增删改查表格信息,可左键/右键提示(原创自Zjmainstay)
2012/07/31 Javascript
js实现可折叠展开的手风琴菜单效果
2015/09/07 Javascript
jquery+css实现动感的图片切换效果
2015/11/25 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
2016/05/17 Javascript
JS实现图片点击后出现模态框效果
2017/05/03 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
2017/05/12 Javascript
cdn模式下vue的基本用法详解
2018/10/07 Javascript
java和js实现的洗牌小程序
2019/09/30 Javascript
node.js使用zlib模块进行数据压缩和解压操作示例
2020/02/12 Javascript
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
2017/07/12 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
python MNIST手写识别数据调用API的方法
2018/08/08 Python
python函数不定长参数使用方法解析
2019/12/14 Python
基于tensorflow __init__、build 和call的使用小结
2021/02/26 Python
css3实现信纸/同学录效果的示例代码
2018/12/11 HTML / CSS
利用CSS3动画实现圆圈由小变大向外扩散的效果实例
2018/09/10 HTML / CSS
印度最大的网上花店:Ferns N Petals(鲜花、礼品和蛋糕)
2017/10/16 全球购物
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
业务经理的岗位职责
2013/11/16 职场文书
大学活动策划书范文
2014/01/10 职场文书
宠物店的创业计划书范文
2014/01/11 职场文书
安全生产宣传标语
2014/06/06 职场文书
代领毕业证委托书
2014/08/02 职场文书
初中作文评语集锦
2014/12/25 职场文书
教师节作文之小学四年级
2019/09/03 职场文书
python OpenCV学习笔记
2021/03/31 Python
一次线上mongo慢查询问题排查处理记录
2022/03/18 MongoDB