hive高级篇-企业级调优
文章目录
前言
大家基础的hive已经学完,发现hive启用的mr框架,如果没有设置好执行计划或者对map语句进行合理的设置,那么会导致语句执行的速度过于缓慢,所以很有必要对hive调优进行学习了解
一、设置分区
静态分区时可以使用insert load。
动态分区只能使用insert。
二、hql语句调优
2.1 避免全表扫描
只选择需要的列和分区
2.2 GroupBy
set hive.map.aggr = true;
set hive.groupby.mapaggr.checkinterval = 100000;
set hive.groupby.skewindata = true; //有数据倾斜时开启负载均衡
开启两个mr 先进行预聚合
2.3 Vectorization
在进行scan filter aggregation开启批量扫描
2.4 多重模式
如果对一张表进行多此的扫描 那么可以先from
2.5 in/exist
left semi join替换in exist,因为这种语法不被支持
2.6 CBO
CBO优化是对执行计划进行筛选,选择最优计划进行执行
包含了谓词下推 比如先执行