hive的调优

1.数据压缩

gzip:压缩比与速度都中等,不可切片
bzip:压缩比最大,可切片
lozy:中等,可切片
snappy:压缩速度快,可切片常用

大数据一般选用snappy形式的压缩。

2.数据存储格式

1.默认行存储。gzip存储不可切片。
2.列存储,可切片,可以不从文件的开始读取数据,加快了查询的速速
3.RCfile:结合行列的优点。进行了压缩存储又加快了查询的速度
4.ORfile:RCfile的加强版
5.parquet格式。行式存储。较好的压缩性能,特有的查询机制,减少了序列化与查询的时间。
一般选用ORfile与parquet的格式进行存储

3.建立分区表与桶表

1、分区表相当于hive数据库的索引。在配置中开启使用分区与设置分区的数量。在建立表的时候使用分区,查询的时候进行分区的指定
2、分桶:桶是更为细粒度的划分,是对列的包装。由hash值与分桶数量来确定分桶的编号。分桶原因

  • 对列进行了包装对于join的操作,加快了速度
  • 取样测试的时候可在分桶进行,加块了速度
  • 可以对指定了的字段进行操作。进行表的拆分。加快速度。

参数设置优化

  • hive的0.10版本开始,对于一些不需要聚合的操作,默认的不需要进行MapReduce的操作,配置中修改
  • 开启并行执行相互没有依赖的job
  • 对于大量小文件的情况,开启jvm的重用。
  • 设置reduce的数量,直接指定数量与指定大小进行计算
  • 开启推测执行的配置。对于一些工作。长时间没有完成。开启另一个job来执行,直到友有一个job执行完成

sql优化

1.先where后join
select的临时表join另一个表
2.union all后用group by进行去重
3.先查询出结果后进行count的聚合
4.in来代替join
selelct a.a a.b from a1 a join b1 b on (a.id = b.id)
selelct a.a a.b from a1 a where id in (select id from b1)
5.对于子查询内,少使用group by max min
6.参数配置mapjoin 小表连接大表
smbjoin 大表连接大表

数据倾斜

参数调节优化
sql的逻辑优化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值