大数据——Hive SQL优化
Posted 长不大的大灰狼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据——Hive SQL优化相关的知识,希望对你有一定的参考价值。
大数据——Hive SQL优化
一、SELECT 字段尽可能少,数据过滤尽可能提前
二、能不用JOIN连接的就不用
三、数据倾斜问题
1、JOIN 优化
选用join key分布最均匀的表作为驱动表,并且大表放在右边,小表放在左边。
2、排序优化
sort by代替 order by.
3、少用count(distinct)
用group by代替 count(distinct)
select count(*) from (select uid from testmac group by uid) t
四、多表join时key保持一致
当对多个表进行join连接时,如果每个on子句都使用相同的连接键的话,那么只会产生一个MapReduce job,执行效率相对快。
五、去除空值和无意义的值
出现空值或无意义值时,如null,空字符串、-1等,在做join时这些空值就会非常集中,拖累进度。因此,若不需要空值数据,就提前写where语句过滤掉。若需要保留,将空值null的记录随机改为负值:
以上是关于大数据——Hive SQL优化的主要内容,如果未能解决你的问题,请参考以下文章