数据倾斜与优化的解决方法

忙到现在才得空

马不停蹄来更文啦~

成都今天好冷啊~即使躲在办公室与电脑相依为命,依旧抵抗不住外界凌凌寒风。

不得不说,

凛冬已至啊(大小朋友们记得保暖御寒^_^)

时间关系,今天分享数据倾斜与优化的解决方法

1、设置属性来解决

set hive.optimize.skewjoin=true

set hive.skewjoin.key=100000

还有可能在group by 中设置

hive.groupby.skewindata=true

在回答优化的时候,也可以说map join的方式【对于小表的关联查询的时】

set hive.auto.convert.join=true

set hive.mapjoin.smalltable.fileszie 默认为25M

注意在hive2中该项是默认开启的。注意一下CDH中使用的版本。

从左到右,依次变大。

2、join语句的优化

select m.cid,u.id from table1 m join table2 u on m.cid=u.cid where m.date='2019-12-12'

该条语句的问题是,先join在去使用where条件。

优化后:

select m.cid,u.id from (select cid from table1 where date='2019-12-12') m join table2 u on m.cid=u.cid

降低了计算量。

3、distinct优化

前:select count(distinct id) from tablename

后:select count(1) from (select distinct id from tablename) tmp

select count(1) from (select id from tablename group by id) tmp

4、对于关联分桶的方式

两个表以相同方式划分桶,或者两个表的桶个数是倍数关系。(分桶之段为关联字段时)

【关联字段一定要是分桶字段】

后面还有其它的数据倾斜说明:

https://www.cnblogs.com/ggjucheng/archive/2013/01/03/2842860.html

随机数解决数据倾斜 ---- null值所产生的数据倾斜

https://blog.csdn.net/lpxuan151009/article/details/7980500   

END。。。

来源:成都科多大数据科技有限公司


PS:今天微博无意发现一个账号:笑出腹肌的狗哥。

心情不好或者瓶颈时刻,放松一下也是可以的。真的笑到流眼泪,很适合放松情绪

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容