`
cumtheima
  • 浏览: 253496 次
  • 性别: 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调优总结文档-hive tuning ppt

    hive调优总结,网络上分享的hive常见优化细节,join、shuffle优化等等。很不错

    Hive Summit 2011-join

    facebook hive中的各种join策略的slides,reporter是个Chinese。

    利用Hive进行复杂用户行为大数据分析及优化案例

    利用Hive进行复杂用户行为大数据分析及优化案例(全套视频+课件...14_Hive中的数据倾斜及解决方案-三种join方式 15_Hive中的数据倾斜及解决方案-group by 16_Hive中使用正则加载数据 17_Hive中使用Python脚本进行预处理

    IT十八掌_Hive阶段学习笔记(课堂笔记与优化总结)

    IT十八掌第三期配套课堂笔记 1、Hive工作原理、类型及特点 2、Hive架构及其文件格式 ...4、Hive的JOIN详解 5、Hive优化策略 6、Hive内置操作符与函数 7、Hive用户自定义函数接口 8、Hive的权限控制

    分布式数据仓库Hive大全

    4. Hive Join 29 5. HIVE参数设置 31 6. HIVE UDF 33 6.1 基本函数 33 6.1.1 关系操作符 33 6.1.2 代数操作符 34 6.1.3 逻辑操作符 35 6.1.4 复杂类型操作符 35 6.1.5 内建函数 36 6.1.6 数学函数 36 6.1.7 集合函数...

    Hive on Spark EXPLAIN statement

    Hive on Spark EXPLAIN statement : 讲述了 Common Join / Map join / Bucket Map Join / Sorted Merge Bucket Map Join / skew join 在explain 中的 树结构 。In Hive, command EXPLAIN can be used to show the ...

    hive练习数据和练习题及答案

    hive练习数据和hive练习题包含了hive练习数据,hive数据的建表ddl和hive练习题,非常适合做hive练习,新手培训,快速入门等; 包含以下练习: hive的group by 和集合函数 hive的Order By/Sort By/Distribute By Join...

    Hive用户指南

    4. Hive Join 29 5. HIVE参数设置 31 6. HIVE UDF 33 6.1 基本函数 33 6.1.1 关系操作符 33 6.1.2 代数操作符 34 6.1.3 逻辑操作符 35 6.1.4 复杂类型操作符 35 6.1.5 内建函数 36 6.1.6 数学函数 36 6.1.7 集合函数...

    使用Hive进行join查询的时报错

    NULL 博文链接:https://weigang-gao.iteye.com/blog/2260663

    【63课时完整版】大数据实践HIVE详解及实战

    50.Hive中的数据倾斜及解决方案-三种join方式 51.Hive中的数据倾斜及解决方案-group by 52.Hive中使用正则加载数据 53. Hive中使用Python脚本进行预处理 第5章:Zeus任务资源调度工具 54.资源任务调度框架介绍 55....

    hive sql + left join 数据缺失

    hive sql + left join 数据缺失

    Hive-Summit-2011-join.zip_hive

    Hive: Join Strategies. Facebook summit-2011

    Hive优化.docx

    Join 查找操作的基本原则:应该将条目少的表/子查询放在 Join 操作符的左边...Join 查找操作中如果存在多个 join,且所有参与 join 的表中其参与 join 的 key 都相 同,则会将所有的 join 合并到一个 mapred 程序中。

    hive 中join和Group的优化

    set hive.map.aggr = true; //是否在 Map 端进行聚合,默认为 True ;该设置会消耗更多的内存。 set hive.groupby.mapaggr.checkinterval = 100000000; //在 Map 端进行聚合操作的条目数目 set hive.groupby....

    Hive用户手册中文版.pdf

    hive帮助文档中文版,添加了目录方便查找定位,分享出来以供交流使用。 包括hive基本结构、基本操作,select,join,参数设置等等用法

    hive-hbase-handler-1.2.1.jar

    Hive提供了与HBase的集成,使得能够在HBase表上使用hive sql 语句进行查询 插入操作以及进行Join和Union等复杂查询、同时也可以将hive表中的数据映射到Hbase中

    SQL、Hive SQL等SQL血缘解析工具

    String hql = "select id,name from (select id from table_1 where id={p0}) t1 inner join (select name --this is name\n from table_2) t2"; // 获取id字段的血缘 LineageNode idNode = Delegate.getDelegate...

    hive调优策略

    hive数据仓库的调优,大小表Join,小文件调优,实现原理

    Hive-Vectorized-Query-Execution-Design.pdf

    hive 向量化执行的设计说明。通过在单个操作中获取 1024 行,而不是每次只获取单行来改善 scans、aggregations、filters 和 join 这类操作的性能。

    Hive查询sql left join exists

    里面 一个例子,说了几个需求,基本能符合,我要使用的功能,左外连接,还有exists替代方案,都很实用,结合文档看一下。

Global site tag (gtag.js) - Google Analytics