【Hive 基础】-- 数据倾斜
创始人
2024-05-30 21:08:15

1.什么是数据倾斜?

由于数据分布不均匀,导致大量数据集中到一点,造成数据热点。常见现象:一个 hive sql 有100个 map/reducer task, 有一个运行了 20分钟,其他99个 task 只运行了 1分钟。

2.产生数据倾斜的原因有哪些?

我个人认为导致数据倾斜的本质原因是数据量过大,导致程序不能按预期结果输出。一般原因有如下几个:

  • key 分布不均匀

  • sql 不合理

  • 建表时类型有问题

3.导致数据倾斜的算子有哪些?

count、disticnt、group by 、join等。

4.常见的解决方案有哪些?

打散key、分段聚合、列裁剪(最好从开发角度和业务角度考虑)、case when 优化。

5.典型场景举例

  • 空值 join:在不影响业务的情况下,filter 掉再join;或者分段处理。

  • 字段类型不一致导致倾斜:因hash 值不一样,解决:使用相同数据类型

  • 某张表数据量过大:使用列裁剪+中间表

  • 调整 group by 顺序:partition by / group by 小数据量1,小数据量2 ----> 提高查询速度

  • cpu 占用过高:排查 case when 是否可以调整,常见使用数学乘法运算替代。比如 a、b、c 的属性可以使用 boolean 类型,那么使用 0 乘以任何数都是0,1*1 为1 来代替 sum(case when ) 的判断,sql 运行速度可提升数倍。

相关内容

热门资讯

北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...