flink kafka sink (scala)

将对象数据通过Gson 转为jsonString,在将数据写到kafka中,这个可以根据需要修改,比如按照\t分开也行,可以节省字段名称的空间。

这里还有一个问题,就是每来一条数据都需要new Gson 对象,有没有办法减少创建呢

我们知道job 和task之间是不能够传输序列化的对象的。

那么如果需要减少Gson的创建,可以自定义map函数,继承并实现RichMapFunction中的方法,其中open就可以只创建一次Gson。

data.map(new Gson().toJson(_))

.addSink(new FlinkKafkaProducer[String]("topicName", new SimpleStringSchema(), props, Optional.ofNullable[FlinkKafkaPartitioner[String]](null)))

.uid("write-to-kafka")

.name("write-to-kafka")

自定义map:

private class DemoMap extends RichMapFunction[Data, String] {

var gson:Gson=_

override def open(parameters: Configuration): Unit = {

gson=new Gson()

}

override def map(value: Data): String = {

gson.toJson(value)

}

override def close(): Unit = {

}

}

相关推荐
梦里不知身是客1116 小时前
flink任务的UI提交方式
大数据·ui·flink
Hello.Reader20 小时前
Flink SQL 从本地安装到跑通第一条流式 SQL
大数据·sql·flink
菜鸟冲锋号20 小时前
Paimon 流 - 流增量关联(CDC 模式)具体实现方案
大数据·flink·数据湖·paimon·多流外键关联
二进制_博客20 小时前
Flink doesn‘t support ENFORCED mode for PRIMARY KEY constraint
大数据·flink·flinkcdc
Hello.Reader20 小时前
用 Flink SQL 搭建一个实时统计应用Kafka → Flink → MySQL 实战
sql·flink·kafka
路边草随风20 小时前
java 实现 flink 读 kafka 写 delta
java·大数据·flink·kafka
zzhongcy20 小时前
RocketMQ、Kafka 和 RabbitMQ 等中间件对比
kafka·rabbitmq·rocketmq
写bug的小屁孩21 小时前
2.Kafka-命令行操作、两种消息模型
分布式·kafka
路边草随风21 小时前
java 实现 flink 读 kafka 写 paimon
java·大数据·flink·kafka
Hello.Reader21 小时前
Flink SQL 查询(Queries)从 sqlQuery 到 executeSql
sql·flink·linq