hivesql优化简述

  1. sql 中缩减查询范围,即指定分区和字段
  2. where 中的条件尽量写在前面,减少后续的数据量
  3. sort by 代替 order by
  4. group by 替代 distinct
  5. group by map 端使用 combiner 对数据进行预先聚合
  6. group by 处理数据倾斜
  7. 多表 join 的时候,小表写在 join 前面
  8. 多表 join 的时候,关联字段尽量写成一样的,即 on a.id=b.id=c.id
  9. map join
  10. 分桶表 map join
  11. hive 针对数据倾斜的配置项hive.skewjoin.key,hive.skewjoin.mapjoin.map.tasks
  12. 过滤空值或没有用的值,跟第一点很像
  13. 单独处理倾斜的key 对应的数据,采用随机前缀的方式将数据打散
  14. 关联值类型不同的要转换成类型统一的,转换方法:
    cast(a.event_type as string)
  15. 优化 map 数量和 reduce 数量
  16. 启用数据压缩
  17. JVM 重用
  18. 并行执行和本地模式执行
  19. 严格模式,就是强制不允许用户执行3种有风险的 HiveSQL 语句:查询分区表时不限定分区列的语句;两表join产生了笛卡尔积的语句;用order by来排序但没有指定limit的语句。
  20. 采用合适的存储格式:textfile,sequencefile,rcfile,avro,orc,parqet

 

参考:Hive/HiveSQL常用优化方法全面总结 - 云+社区 - 腾讯云

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值