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查询语句风格的资料请关注脚本之家其它相关文章!

相关文章

  • MySQL mysqldump命令使用详解

    MySQL mysqldump命令使用详解

    MySQL有很多可以导入数据的方法,然而这些只是数据传输中的一半,另外的一般是从MySQL数据库中导出数据。有许多的原因我们需要导出数据。一个重要的原因是用于备份数据库。数据的造价常常是昂贵的,需要谨慎处理它们。
    2006-12-12
  • 关于数据库设计中主键问题的思考

    关于数据库设计中主键问题的思考

    数据库主键在数据库中占有重要地位。主键的选取策略决定了系统是否可靠、易用、高效。本文探讨了数据库设计过程当中常见的主键选取策略,并剖析了其做主键的优缺点,提出了相应的解决问题的方法
    2013-08-08
  • JDBC中resutset接口操作实例详解

    JDBC中resutset接口操作实例详解

    这篇文章主要介绍了JDBC中resutset接口操作实例详解,代码示例注释比较详细,需要的朋友可以参考下。
    2017-09-09
  • 在windows系统下如何安装memcached的讲解

    在windows系统下如何安装memcached的讲解

    今天小编就为大家分享一篇关于在windows系统下如何安装memcached的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • 详解分库分表后非分片键如何查询

    详解分库分表后非分片键如何查询

    这篇文章主要为大家介绍了分库分表后非分片键如何查询详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 浅谈数据库索引的作用及原理

    浅谈数据库索引的作用及原理

    这篇文章主要介绍了浅谈数据库索引的作用及原理的相关内容,涉及索引加速和加索引的时间等,希望通过这篇文章让大家对索引有一个初步的了解,需要的朋友可以参考下。
    2017-09-09
  • SQLite快速入门指南

    SQLite快速入门指南

    这篇文章主要介绍了SQLite快速入门指南,作为开源的嵌入式数据库,SQLite可以在不需要过多投入数据库开发时提供十分轻便的服务,需要的朋友可以参考下
    2015-07-07
  • MySQL与Oracle数据类型对应关系(表格形式)

    MySQL与Oracle数据类型对应关系(表格形式)

    MySQL与Oracle两种数据库在工作中,都是用的比较多的数据库,由于MySQL与Oracle在数据类型上有部分差异,在我们迁移数据库时,会遇上一定的麻烦,下面介绍MySQL与Oracle数据库数据类型的对应关系
    2017-04-04
  • DBeaver连接hive的超详细图解

    DBeaver连接hive的超详细图解

    dbeaver是一个图形化的界面工具,专门用于与各种数据库的集成,通过dbeaver我们可以与各种数据库进行集成通过图形化界面的方式来操作我们的数据库与数据库表,这篇文章主要给大家介绍了关于DBeaver连接hive的超详细图解,需要的朋友可以参考下
    2024-03-03
  • sqlserver中drop、truncate和delete语句的用法

    sqlserver中drop、truncate和delete语句的用法

    这篇文章主要介绍了sqlserver中drop、truncate和delete语句的用法,本文图文并茂,内容清晰,需要的朋友可以参考下
    2014-09-09

最新评论