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

数据库 相关文章推荐
【HBU】数据库第四周 单表查询
Apr 05 SQL Server
MySQL8.0.24版本Release Note的一些改进点
Apr 22 MySQL
如何自己动手写SQL执行引擎
Jun 02 MySQL
MySQL 常见的数据表设计误区汇总
Jun 07 MySQL
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
Jun 26 MySQL
使用Oracle跟踪文件的问题详解
Jun 28 Oracle
SQL实现LeetCode(197.上升温度)
Aug 07 MySQL
详解Redis在SpringBoot工程中的综合应用
Oct 16 Redis
Redis集群节点通信过程/原理流程分析
Mar 18 Redis
SQL Server 忘记密码以及重新添加新账号
Apr 26 SQL Server
一篇文章带你掌握SQLite3基本用法
Jun 14 数据库
DQL数据查询语句使用示例
Dec 24 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 防止单引号,双引号在接受页面转义
2008/07/10 PHP
php使用smtp发送支持附件的邮件示例
2014/04/13 PHP
php.ini save_handler 修改不生效的解决办法
2014/07/22 PHP
PHP实现文件下载断点续传详解
2014/10/15 PHP
php基于websocket搭建简易聊天室实践
2016/10/24 PHP
jquery 学习之二 属性(类)
2010/11/25 Javascript
[原创]推荐10款最热门jQuery UI框架
2014/08/19 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
javascript带回调函数的异步脚本载入方法实例分析
2015/07/02 Javascript
BootStrap Table 分页后重新搜索问题的解决办法
2016/08/08 Javascript
浅谈JS中的bind方法与函数柯里化
2016/08/10 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
2017/02/08 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
详解基于React.js和Node.js的SSR实现方案
2019/03/21 Javascript
JS/CSS实现字符串单词首字母大写功能
2019/09/03 Javascript
微信小程序图片右边加两行文字的代码
2020/04/23 Javascript
python 判断自定义对象类型
2009/03/21 Python
python 性能提升的几种方法
2016/07/15 Python
python实现图片处理和特征提取详解
2017/11/13 Python
python 获取list特定元素下标的实例讲解
2018/04/09 Python
对python判断ip是否可达的实例详解
2019/01/31 Python
Django重设Admin密码过程解析
2020/02/10 Python
关于Python解包知识点总结
2020/05/05 Python
python编写一个会算账的脚本的示例代码
2020/06/02 Python
英国领先的餐饮折扣俱乐部:Gourmet Society
2020/07/26 全球购物
如何处理简单的PHP错误
2015/10/14 面试题
高级护理实习生自荐信
2013/09/28 职场文书
建筑工程专业毕业生自荐信
2013/10/19 职场文书
经济学博士求职自荐信范文
2013/11/23 职场文书
党员群众路线个人整改措施思想汇报
2014/10/12 职场文书
2014年信息宣传工作总结
2014/12/18 职场文书
劳动保障个人工作总结
2015/03/04 职场文书
《狮子和鹿》教学反思
2016/02/16 职场文书
redis三种高可用方式部署的实现
2021/05/11 Redis
使用opencv-python如何打开USB或者笔记本前置摄像头
2022/06/21 Python
在虚拟机中安装windows server 2008的图文教程
2022/06/28 Servers