其他分享
首页 > 其他分享> > 数据倾斜通用处理方式

数据倾斜通用处理方式

作者:互联网

使用“二次聚合”的思想

1.离线数据

Hive 、MR、 SPARK

1.1 场景描述

以MR为例,目前有p1 和 p2 两个分区, p1分区内有1亿条数据,key值为a ,p2分区内有一万条数据,key值为b

1.2 解决思路

以SQL为例
 首先,为key加上随机数,进行一次分区,
 (
 select 
 聚合函数,如count*
 from 
 group by key+随机数
 ) t1
 然后在上面SQL的基础上进行二次分区
 select 
    聚合函数
 from t1
 group by key去掉随机数

2.实时数据

使用Flink直接调用rebalance()算子或rescale()算子
rebalance算子会将各个分区内的数据打散再分区,rescale算子功能和rebalance算子相同,但效率更高

标签:通用,随机数,处理,数据,分区,key,算子,倾斜,rebalance
来源: https://www.cnblogs.com/traveller-hzq/p/15866333.html