--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调优总结,网络上分享的hive常见优化细节,join、shuffle优化等等。很不错
facebook hive中的各种join策略的slides,reporter是个Chinese。
利用Hive进行复杂用户行为大数据分析及优化案例(全套视频+课件...14_Hive中的数据倾斜及解决方案-三种join方式 15_Hive中的数据倾斜及解决方案-group by 16_Hive中使用正则加载数据 17_Hive中使用Python脚本进行预处理
IT十八掌第三期配套课堂笔记 1、Hive工作原理、类型及特点 2、Hive架构及其文件格式 ...4、Hive的JOIN详解 5、Hive优化策略 6、Hive内置操作符与函数 7、Hive用户自定义函数接口 8、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 : 讲述了 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数据的建表ddl和hive练习题,非常适合做hive练习,新手培训,快速入门等; 包含以下练习: hive的group by 和集合函数 hive的Order By/Sort By/Distribute By Join...
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 集合函数...
NULL 博文链接:https://weigang-gao.iteye.com/blog/2260663
50.Hive中的数据倾斜及解决方案-三种join方式 51.Hive中的数据倾斜及解决方案-group by 52.Hive中使用正则加载数据 53. Hive中使用Python脚本进行预处理 第5章:Zeus任务资源调度工具 54.资源任务调度框架介绍 55....
hive sql + left join 数据缺失
Hive: Join Strategies. Facebook summit-2011
Join 查找操作的基本原则:应该将条目少的表/子查询放在 Join 操作符的左边...Join 查找操作中如果存在多个 join,且所有参与 join 的表中其参与 join 的 key 都相 同,则会将所有的 join 合并到一个 mapred 程序中。
set hive.map.aggr = true; //是否在 Map 端进行聚合,默认为 True ;该设置会消耗更多的内存。 set hive.groupby.mapaggr.checkinterval = 100000000; //在 Map 端进行聚合操作的条目数目 set hive.groupby....
hive帮助文档中文版,添加了目录方便查找定位,分享出来以供交流使用。 包括hive基本结构、基本操作,select,join,参数设置等等用法
Hive提供了与HBase的集成,使得能够在HBase表上使用hive sql 语句进行查询 插入操作以及进行Join和Union等复杂查询、同时也可以将hive表中的数据映射到Hbase中
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数据仓库的调优,大小表Join,小文件调优,实现原理
hive 向量化执行的设计说明。通过在单个操作中获取 1024 行,而不是每次只获取单行来改善 scans、aggregations、filters 和 join 这类操作的性能。
里面 一个例子,说了几个需求,基本能符合,我要使用的功能,左外连接,还有exists替代方案,都很实用,结合文档看一下。