技术小白是这么理解SQL查询时数据倾斜问题的

 数据倾斜,看字面很简单,但实际还是不知道发生了什么情况。对于像我这样很多非技术类同学,想把技术原理弄懂,可能需要了解很多相关知识才能真正理解,这不太现实。所以,我们需要找到简单而又清晰的理解。相信理读完以下四点, 还是对数据倾斜有一个比较清晰的认知的。

数据倾斜的理解及优化

Q1 什么是数据倾斜?

数据倾斜是指,分布式计算时,一些节点计算量高于其他节点,速度很慢,导致其他节点计算完成后,还要等待这些节点完成。

Q2 数据倾斜有什么表现?

直观上可以看到map100%,reduce还卡在99%呢。

Q3 数据倾斜产生的原因是什么?

一般与业务逻辑和计算数据量有关。key分布的数据量不均匀,比如有的key有100万条数据,有的只有100条,处理100万条明显比处理10条数据的key慢。同时,整体任务的运行速度取决于最慢的那个。

Q4 数据倾斜发生时,如何优化?

a. 清除无效的倾斜数据,比如我们使用的表,需要聚合的字段有大量空值,而大部分分析场景下,是不需要空值的,这时,我们就可以将无效的数据剔除;

b. 强制拆解key,如果个别的key数据量过大,那么我们可以将key拆分成多组,聚合完成后,再按原本的key聚合,即可得到原来的需求数据。

    当然了,如果CPU和资源足够,机器跑的动,key数据量大也没那么慢,这就是白天和晚上运行任务的差异。

更多文章,可关注微信公众号:Excel办公小技巧

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值