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

 更新时间:2022年06月23日 11:55:51   作者:数据人阿多  
这篇文章主要为大家介绍了Hive HQL支持2种查询语句风格示例语法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

背景

在平时业务运营分析中经常会提取数据,也就是大家俗称的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 语句理解为建立了一个临时视图/表一样,后面的表引用前面的表,逻辑是正向推进

两种风格的区别

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

相关参考

Python 利用Pandas把数据直接导入Mysql

Python 基于ssh连接远程Mysql数据库

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

相关文章

  • dbeaver工具连接达梦数据库的完整步骤

    dbeaver工具连接达梦数据库的完整步骤

    DBeaver数据库连接工具是我用了这么久最好用的一个数据库连接工具,拥有的优点,支持的数据库多、快捷键很赞、导入导出数据非常方便,下面这篇文章主要给大家介绍了关于dbeaver工具连接达梦数据库的完整步骤,需要的朋友可以参考下
    2023-05-05
  • DBeaver下载安装详细教程

    DBeaver下载安装详细教程

    DBeaver是数据库管理工具,如何下载安装,下面将详细介绍DBeaver下载安装详细教程,感兴趣的朋友跟随小编一起学习下吧
    2021-11-11
  • sql语句中where和having的区别

    sql语句中where和having的区别

    HAVING是先分组再筛选记录,WHERE在聚合前先筛选记录.也就是说作用在GROUP BY 子句和HAVING子句前;而 HAVING子句在聚合后对组记录进行筛选
    2013-06-06
  • 一次因表变量导致SQL执行效率变慢的实战记录

    一次因表变量导致SQL执行效率变慢的实战记录

    这篇文章主要给大家介绍了一次因表变量导致SQL执行效率变慢的实战记录,本文通过图文以及示例代码介绍的非常详细,对大家学习或者了解sql具有一定的参考学习价值,需要的朋友可以参考下
    2021-11-11
  • SQL注入技巧之显注与盲注中过滤逗号绕过详析

    SQL注入技巧之显注与盲注中过滤逗号绕过详析

    SQL注入的绕过技巧有很多,下面这篇文章主要给大家介绍了关于SQL注入技巧之显注与盲注中过滤逗号绕过的相关资料,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08
  • 关系型数据库和非关系型数据库概述与优缺点对比

    关系型数据库和非关系型数据库概述与优缺点对比

    这篇文章介绍了关系型数据库和非关系型数据库概述与优缺点对比,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • sql注入之新手入门示例详解

    sql注入之新手入门示例详解

    这篇文章仅仅是对SQL注入进行了一个简单的入门知识的讲解,是sql注入的基础篇,有个好的开头能够帮助大家对SQL注入有一个具体清晰的了解和认识。下面来一起看看吧,有需要的可以参考借鉴。
    2016-09-09
  • Navicat恢复数据库连接及查询sql的完美解决办法

    Navicat恢复数据库连接及查询sql的完美解决办法

    因为公司给电脑加域,导致使用新的用户账户,原先的很多配置都失效了,这篇文章主要介绍了Navicat恢复数据库连接及查询sql的解决办法,需要的朋友可以参考下
    2023-08-08
  • 你真的知道怎么优化SQL吗

    你真的知道怎么优化SQL吗

    这篇文章主要给大家介绍了关于优化SQL的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用SQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • Win2003系统安装SQL Server2000后1433端口未开放的解释

    Win2003系统安装SQL Server2000后1433端口未开放的解释

    这篇文章主要介绍了Win2003系统安装SQL Server2000后1433端口未开放的解释
    2007-02-02

最新评论