Flink Sink定制开发

一、KafkaSink

1、按流内容分发到对应topic,隔天自动切换

在flink自带的kafka sink实现里,只支持写到固定topic,而我们的kafka2kafka日志处理逻辑要求消息要按照ds字段值写入到对应topic,topic名前缀相同,后面跟ds字段值,需要进行改造

具体实现思路如下:

(1)由如下源码可知KeyedSerializationSchema对象才能赋值schema,从而可以通过schema.getTargetTopic获得每条对应的topic,而常用的SimpleStringSchema并未继承KeyedSerializationSchema,无法得到对应的topic,只能使用固定topic

FlinkKafkaProducer011

private final KeyedSerializationSchema<IN> schema;
@Override
public void invoke(KafkaTransactionState transaction, IN next, Context context) throws FlinkKafka011Exception {
    String targetTopic = schema.getTargetTopic(next);
    if (targetTopic == null) {
        targetTopic = defaultTopicId;
    }
    ...
}

(2)继承合适的父类进行二次开发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值