--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-join(hive不支持右半开连接)
左半开连接(left semi-join)会返回左边表的记录,前提是其记录对于右边表满足on语句中的判定条件。
select和where语句中都不能引用右边表的字段。
适用场景:
因为hive不支持in...exists结构,所以要使用左半开连接代替.
注意点:
semi-join比inner join更高效
hive不支持右半开连接.
5. map端join:map-side join
map-side join:hive可以在map端执行连接过程(对于在join时有一个是小表的情况)
使用map-side join,需要配置下:
(1)hive0.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
(2)hive0.7版本开始,设置hive.auto.convert.join=true
hive.auto.convert.join=true
hive.mapjoin.smalltable.filsize=25000000 --使用这个优化的小表的大小(单位:字节)--注意:右外连接和全外连接不支持这个优化
备注:
(1). hive的join语句,只支持等值连接。
(2). 注:pig提供的交叉生成功能支持“非等值连接”.
(3). hive目前不支持在join 的on子句中使用or。
相关推荐
Hive学习总结及应用.pdf 本文档主要介绍了Hive的基本概念、应用场景、元数据存储方式、数据导入和导出方式等。下面是对文档中提到的知识点的详细解释: 一、Hive概述 Hive是一个构建在HDFS和Map/Reduce之上的可...
Hive优化总结是Hive性能优化的总结,涉及HIVE的参数设置、HQL语言的写法、JOIN操作的优化、MapReduce操作的优化、列裁剪、分区裁剪等多个方面。 1. 配置文件优化 Hive的配置文件hive-site.xml是Hive的核心配置文件...
Hive支持大部分SQL标准,包括SELECT、FROM、WHERE、GROUP BY、JOIN等操作,使得用户可以方便地对Hadoop上的数据进行查询和分析。 【Hive函数】 Hive提供了丰富的内置函数,包括聚合函数(SUM、COUNT、AVG等)、数学...
随着Hive版本的不断更新,部分用户在升级至Hive 3之后遇到了数据处理中的一个常见问题——在执行Left Join操作时出现数据缺失。 #### 二、问题复现 问题发生在如下的SQL语句中: ```sql SELECT a.* FROM ( SELECT ...
总结,Hive是Hadoop生态系统中的一个重要组成部分,它为数据分析师提供了便捷的SQL接口,简化了大数据处理的复杂性,特别适用于需要对大量历史数据进行分析的场景。虽然Hive在实时性和数据更新方面存在限制,但它在...
【Hive 学习资料】 Hive 是一个基于 Hadoop 的数据仓库系统,它主要设计用于处理和管理大规模数据集。Hive 提供了一个类似 SQL 的查询语言——HiveQL,使得非 MapReduce 开发者也能方便地进行大数据分析。此外,...
Hive Summit 2011-join介绍了Facebook中Hive实现的多种join策略。Hive作为一个数据仓库工具,主要用于处理大规模数据集的分析和查询,而join操作是数据仓库中常见且关键的操作之一。在大数据的背景下,如何高效地...
以下是对"Hive调优总结文档-hive tuning ppt"中可能涉及的多个知识点的详细阐述: 1. **元数据优化**: - **分区策略**:根据业务需求,合理设计分区字段,减少不必要的数据扫描,例如按日期、地区等进行分区。 -...
在本课程设计中,主题是“基于Antlr4的Hive SQL解析”,这涉及到了两个主要的技术领域:Antlr4和Hive SQL。Antlr4是一个强大的解析工具,用于生成解析器和词法分析器,它能处理各种语言的语法,包括SQL。而Hive SQL...
【Hive 学习总结及应用】 Hive 是一个基于 Hadoop 的数据仓库工具,它提供了 SQL-like 的查询语言——HiveQL,使得用户能够方便地处理存储在 HDFS 上的大规模数据集。Hive 旨在简化数据ETL(提取、转换、加载)流程...
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 语法总结是一种基于 Hadoop 的数据仓库工具,它提供了类似 SQL 的查询语言,用于处理和分析大规模数据。下面是 Hive 语法总结的知识点: 1. SELECT 语句 Hive 的 SELECT 语句结构如下: ...
【标题】:“Hive-Summit-2011-join.zip_hive”指的是一个关于HiveJoin策略的讨论,源自2011年Facebook峰会上的分享。 【描述】:“Hive: Join Strategies. Facebook summit-2011”说明了这个主题集中在Hive的连接...
### Hive学习笔记——深入理解大数据处理框架 #### HIVE架构详解与Hadoop关系解析 Hive作为基于Hadoop的大数据处理框架,其架构设计旨在简化海量数据的存储、查询和分析过程。它提供了类似SQL的查询语言——HiveQL...
- **解释**:`LEFT SEMI JOIN`返回左表中所有出现在右表中的记录。这正好可以用来模拟`IN`关键字的功能。 #### 3. 子查询只支持在`FROM`关键字里 - **背景**:Hive不支持在`SELECT`子句中直接使用子查询。 - **...
总结来说,Hive 是大数据领域中不可或缺的一部分,它为大规模数据处理提供了一种易于理解和使用的解决方案,使得数据分析工作变得更加高效和便捷。通过学习和掌握 Hive,用户可以更好地管理和利用 Hadoop 生态系统中...
《阿里巴巴Hive学习笔记》是基于阿里巴巴内部分享的资料,主要涵盖了Hive的基本结构、与Hadoop的关系、元数据库管理以及基本操作等方面,为初学者提供了深入理解Hive的全面指南。 1. **Hive结构** - **Hive架构**...
此外,还需要掌握HQL(Hive Query Language)的语法,如SELECT、JOIN、GROUP BY等操作,以及如何优化Hive查询以提高性能,例如通过分区、桶、压缩和数据本地化等方式。最后,熟悉Hive与其他大数据组件(如HDFS、...