【Flink】随机前缀解决数据倾斜

在这里插入图片描述
Source如果是多并行度,其采用的是轮询;
KeyBy数据倾斜:

  • BroadCast或者Custom
  • 广播适合join场景
  • 自定义适合groupby场景

rebalance

在这里插入图片描述
rebalance 将数据发往下游所有并行度

rescale

在这里插入图片描述

自定义分区器

        //自定义分区器  泛型是key 返回值是分区号
        source.partitionCustom(new Partitioner<String>() {
            @Override
            public int partition(String s, int i) {
                if (s.length() == 1) return 0;
                return 1;
            }
        }, new KeySelector<String, String>() {
            @Override
            public String getKey(String s) throws Exception {
                return s;
            }
        });

在这里插入图片描述

自定义分区器防止数据倾斜(Join场景)

在这里插入图片描述
在这里插入图片描述

1.用map将key加上随机键前缀
2.自定义分区器

随即前缀大小表join

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值