`
cumtheima
  • 浏览: 255952 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

hive学习总结(4)—hive中所有join

    博客分类:
  • Hive
阅读更多
1.  内连接:inner join

 

--join优化:在进行join的时候,大表放在最后面

 

--但是使用 /*+streamtable(大表名称)*/ 来标记大表,那么大表放在什么位置都行了

 

select /*+streamtable(s)*/ s.ymd,d.dividend

 

from stocks s inner join dividends d on s.ymd=d.ymd and s.symbol=d.symbol

 

where s.symbol=’aapl’

 

2.  外连接:left outer join,right outer join,full outer join

 

把外连接(outer join)where语句中的过滤条件,放在on语句是无效的。不过对于内连接有效。

 

3.  笛卡尔积:join

 

join的时候不使用on,而使用where的。

 

--笛卡尔积join很缓慢,可以设置hive.mapred.mode=strict来阻止执行

 

hive.mapred.mode=strict

 

4. 左半开连接:left semi-joinhive不支持右半开连接)

 

左半开连接(left semi-join)会返回左边表的记录,前提是其记录对于右边表满足on语句中的判定条件。

 

selectwhere语句中都不能引用右边表的字段。

 

适用场景:

 

因为hive不支持in...exists结构,所以要使用左半开连接代替.

 

注意点:

 

semi-joininner join更高效

 

hive不支持右半开连接.

 

5.  mapjoinmap-side join

 

map-side joinhive可以在map端执行连接过程(对于在join时有一个是小表的情况)

 

 使用map-side join,需要配置下:

1hive0.7版本之前,需要加/*+ mapjoin(表名) */

 

select /*+ mapjoin(d) */ s.ymd,d.dividend from stocks s join dividends d

 

on s.ymd=d.ymd and s.symbol=d.symbol

 

where s.symbol=’AAPL

2hive0.7版本开始,设置hive.auto.convert.join=true

 

hive.auto.convert.join=true

 

hive.mapjoin.smalltable.filsize=25000000    --使用这个优化的小表的大小(单位:字节)--注意:右外连接和全外连接不支持这个优化

 

备注:

 

(1). hivejoin语句,只支持等值连接。

(2). 注:pig提供的交叉生成功能支持“非等值连接”.

(3). hive目前不支持在join on子句中使用or

1
1
分享到:
评论
1 楼 cumtheima 2014-11-21  
欢迎大家提问交流!

相关推荐

    Hive学习总结及应用.pdf

    Hive学习总结及应用.pdf 本文档主要介绍了Hive的基本概念、应用场景、元数据存储方式、数据导入和导出方式等。下面是对文档中提到的知识点的详细解释: 一、Hive概述 Hive是一个构建在HDFS和Map/Reduce之上的可...

    hive优化总结

    Hive优化总结是Hive性能优化的总结,涉及HIVE的参数设置、HQL语言的写法、JOIN操作的优化、MapReduce操作的优化、列裁剪、分区裁剪等多个方面。 1. 配置文件优化 Hive的配置文件hive-site.xml是Hive的核心配置文件...

    Hive总结.docx

    Hive支持大部分SQL标准,包括SELECT、FROM、WHERE、GROUP BY、JOIN等操作,使得用户可以方便地对Hadoop上的数据进行查询和分析。 【Hive函数】 Hive提供了丰富的内置函数,包括聚合函数(SUM、COUNT、AVG等)、数学...

    hive sql + left join 数据缺失

    随着Hive版本的不断更新,部分用户在升级至Hive 3之后遇到了数据处理中的一个常见问题——在执行Left Join操作时出现数据缺失。 #### 二、问题复现 问题发生在如下的SQL语句中: ```sql SELECT a.* FROM ( SELECT ...

    基于Hadoop的数据仓库Hive学习指南.doc

    总结,Hive是Hadoop生态系统中的一个重要组成部分,它为数据分析师提供了便捷的SQL接口,简化了大数据处理的复杂性,特别适用于需要对大量历史数据进行分析的场景。虽然Hive在实时性和数据更新方面存在限制,但它在...

    hive的学习资料

    【Hive 学习资料】 Hive 是一个基于 Hadoop 的数据仓库系统,它主要设计用于处理和管理大规模数据集。Hive 提供了一个类似 SQL 的查询语言——HiveQL,使得非 MapReduce 开发者也能方便地进行大数据分析。此外,...

    Hive Summit 2011-join

    Hive Summit 2011-join介绍了Facebook中Hive实现的多种join策略。Hive作为一个数据仓库工具,主要用于处理大规模数据集的分析和查询,而join操作是数据仓库中常见且关键的操作之一。在大数据的背景下,如何高效地...

    hive调优总结文档-hive tuning ppt

    以下是对"Hive调优总结文档-hive tuning ppt"中可能涉及的多个知识点的详细阐述: 1. **元数据优化**: - **分区策略**:根据业务需求,合理设计分区字段,减少不必要的数据扫描,例如按日期、地区等进行分区。 -...

    基于 Antlr4 的 Hive SQL 解析.zip

    在本课程设计中,主题是“基于Antlr4的Hive SQL解析”,这涉及到了两个主要的技术领域:Antlr4和Hive SQL。Antlr4是一个强大的解析工具,用于生成解析器和词法分析器,它能处理各种语言的语法,包括SQL。而Hive SQL...

    02hive学习总结及应用.pdf

    【Hive 学习总结及应用】 Hive 是一个基于 Hadoop 的数据仓库工具,它提供了 SQL-like 的查询语言——HiveQL,使得用户能够方便地处理存储在 HDFS 上的大规模数据集。Hive 旨在简化数据ETL(提取、转换、加载)流程...

    hive参数优化总结

    Join、MapJoin、Group by 是 Hive 中三个非常重要的语法,影响着数据处理的速度和效率。Join-used to combine rows from two or more tables, based on a related column between them。MapJoin-used to combine ...

    hive语法总结

    Hive 语法总结 Hive 语法总结是一种基于 Hadoop 的数据仓库工具,它提供了类似 SQL 的查询语言,用于处理和分析大规模数据。下面是 Hive 语法总结的知识点: 1. SELECT 语句 Hive 的 SELECT 语句结构如下: ...

    Hive-Summit-2011-join.zip_hive

    【标题】:“Hive-Summit-2011-join.zip_hive”指的是一个关于HiveJoin策略的讨论,源自2011年Facebook峰会上的分享。 【描述】:“Hive: Join Strategies. Facebook summit-2011”说明了这个主题集中在Hive的连接...

    Hive学习笔记

    ### Hive学习笔记——深入理解大数据处理框架 #### HIVE架构详解与Hadoop关系解析 Hive作为基于Hadoop的大数据处理框架,其架构设计旨在简化海量数据的存储、查询和分析过程。它提供了类似SQL的查询语言——HiveQL...

    部分普通sql查询在hive中的实现方式

    - **解释**:`LEFT SEMI JOIN`返回左表中所有出现在右表中的记录。这正好可以用来模拟`IN`关键字的功能。 #### 3. 子查询只支持在`FROM`关键字里 - **背景**:Hive不支持在`SELECT`子句中直接使用子查询。 - **...

    hive

    总结来说,Hive 是大数据领域中不可或缺的一部分,它为大规模数据处理提供了一种易于理解和使用的解决方案,使得数据分析工作变得更加高效和便捷。通过学习和掌握 Hive,用户可以更好地管理和利用 Hadoop 生态系统中...

    阿里巴巴Hive学习笔记.docx

    《阿里巴巴Hive学习笔记》是基于阿里巴巴内部分享的资料,主要涵盖了Hive的基本结构、与Hadoop的关系、元数据库管理以及基本操作等方面,为初学者提供了深入理解Hive的全面指南。 1. **Hive结构** - **Hive架构**...

    hive学习笔记精华版

    此外,还需要掌握HQL(Hive Query Language)的语法,如SELECT、JOIN、GROUP BY等操作,以及如何优化Hive查询以提高性能,例如通过分区、桶、压缩和数据本地化等方式。最后,熟悉Hive与其他大数据组件(如HDFS、...

Global site tag (gtag.js) - Google Analytics