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

数据库 相关文章推荐
MySQL Innodb关键特性之插入缓冲(insert buffer)
Apr 08 MySQL
MySQL 存储过程的优缺点分析
May 20 MySQL
MySQL连接查询你真的学会了吗?
Jun 02 MySQL
如何搭建 MySQL 高可用高性能集群
Jun 21 MySQL
关于PostgreSQL JSONB的匹配和交集问题
Sep 14 PostgreSQL
面试被问select......for update会锁表还是锁行
Nov 11 MySQL
Redis高可用集群redis-cluster详解
Mar 20 Redis
如何创建一个创建MySQL数据库中的datetime类型
Mar 21 MySQL
PostgreSQL数据库去除重复数据和运算符的基本查询操作
Apr 12 PostgreSQL
mysql 8.0.27 绿色解压版安装教程及配置方法
Apr 20 MySQL
MySQL范围查询优化的场景实例详解
Jun 10 MySQL
MySQL中的 inner join 和 left join的区别解析(小结果集驱动大结果集)
May 08 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正则表达式替换站点关键字链接后空白的解决方法
2014/09/16 PHP
smarty内置函数config_load用法实例
2015/01/22 PHP
php+xml实现在线英文词典查询的方法
2015/01/23 PHP
php实现图片转换成ASCII码的方法
2015/04/03 PHP
微信支付的开发流程详解
2016/09/13 PHP
php 输出json及显示json中的中文汉字详解及实例
2016/11/09 PHP
jQuery ui1.7 dialog只能弹出一次问题
2009/08/27 Javascript
javascript 打印内容方法小结
2009/11/04 Javascript
一个不错的字符串转码解码函数(自写)
2014/07/31 Javascript
javascript动态修改Li节点值的方法
2015/01/20 Javascript
防止Node.js中错误导致进程阻塞的办法
2016/08/11 Javascript
jQuery正则验证注册页面经典实例
2017/06/10 jQuery
微信小程序picker组件简单用法示例【附demo源码下载】
2017/12/05 Javascript
Angular2实现组件交互的方法分析
2017/12/19 Javascript
js实现黑白div块画空心的图形
2018/12/13 Javascript
vue自定义js图片碎片轮播图切换效果的实现代码
2019/04/28 Javascript
webpack实践之DLLPlugin 和 DLLReferencePlugin的使用教程
2019/06/10 Javascript
vue-quill-editor插入图片路径太长问题解决方法
2021/01/08 Vue.js
LRUCache的实现原理及利用python实现的方法
2017/11/21 Python
一个Python最简单的接口自动化框架
2018/01/02 Python
基于keras 模型、结构、权重保存的实现
2020/01/24 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
详解pandas中iloc, loc和ix的区别和联系
2020/03/09 Python
Python-jenkins模块之folder相关操作介绍
2020/05/12 Python
浅谈python出错时traceback的解读
2020/07/15 Python
Matplotlib配色之Colormap详解
2021/01/05 Python
机电专业体育教师求职信
2013/09/21 职场文书
仓库规划计划书
2014/04/28 职场文书
毕业生求职信
2014/06/10 职场文书
浪漫婚礼主题活动策划方案
2014/09/15 职场文书
农村党支部书记四风问题个人对照检查材料
2014/09/21 职场文书
党的群众路线教育实践活动个人整改措施范文
2014/11/04 职场文书
八年级上册语文教学计划
2015/01/22 职场文书
2015年党员发展工作总结
2015/05/13 职场文书
Python面试不修改数组找出重复的数字
2022/05/20 Python
html5+实现plus.io进行拍照和图片等获取
2022/06/01 HTML / CSS