当前位置

首页 > 健康生活 > 心理 > 事务执行过长如何优化

事务执行过长如何优化

推荐人: 来源: 摩登社 阅读: 3.34W 次
事务执行过长如何优化

事务执行过长优化方法:

1)mapjoin

适用于小表JOIN大表的场景,由于表的JOIN操作是在Map端且在内存进行的,所以其并不需要启动Reduce任务也就不需要经过shuffle阶段,从而能在一定程度上节省资源提高JOIN效率

2)解决数据倾斜

数据倾斜就是key分布不均匀,导致分发到不同的reduce上,个别reduce任务特别重,导致其他reduce都完成,而这些个别的reduce迟迟不完成的情况

3)避免count(distinct)。可使用group by 代替

4)尽早过滤数据。根据业务特点,添加必要的过滤条件

5)列裁剪。只查询所需要的列,节约磁盘读取

6)调整JOIN顺序。尽量将数据量少的表/子查询放在JOIN的左边

7)优化SQL查询。能够扫描一遍源表得到的结果,不要多次扫描。即同一个表,一次性做尽可能多的操作

8)尽可能避免子查询group by。即尽量先关联出结果,再进行group by

9)当需要执行多个子查询union all或者JOIN操作的时候,job间可以并行(llel,将其设为true)

10)拆散多表JOIN。大量表进行JOIN时,hive执行引擎,不一定能很好地工作,此时可考虑将SQL分步骤执行,即少量表分开JOIN,然后再汇总