Hive4

p26-p30

Hive优化_GroupBy

  1. 并不是所有聚合操作都在reduce端完成,很多聚合操作可以在map端执行,然后在reduce端得到最终结果
(1)Map是否需要聚合设置为true:  
    set hive.map.aggr=ture;
(2)设置在Map端进行聚合操作的条目数目:
    set hive.groupby.mapaggr.checkinterval=10000;
(3)有数据倾斜的时候进行负载均衡(默认为false):
    set hive.groupby.skewindata=true;

Hive优化_去重统计

  1. 一般count distinct使用先groupby在count的方式
select count(id) from (select id from bigtable group by id) a;

Hive优化_行列过滤

  1. 先进行子查询,再进行表join操作以减小计算量
  2. 下面是先子查询,后join的方法
select b.id from bigtable b
join (select id from smalltable where id<=10) s on b.id=s.id;

下面是先join后设置查询条件的做法(速度慢,计算量大):

select b.id from bigtable b
join smalltable s on s.id=b.id
where s.id<=10;

你可能感兴趣的:(Hive4)