【发布时间】:2021-08-07 23:35:03
【问题描述】:
我正在使用 Kafka Connect JdbcSourceConnector 将数据库表行流式传输到主题中。在 Connect 配置中,我有这些行以便从表的 value 列填充 Kafka 消息体:
"transforms": "extract",
"transforms.extract.type": "org.apache.kafka.connect.transforms.ExtractField$Value",
"transforms.extract.field": "value",
它基本上可以工作,但是消息正文在字符串周围带有额外的双引号字符,这完全出乎我的意料。例如,如果表行的列中有"value1"(不包括引号),则该行的Kafka 消息正文为"\"value1\""(不包括外部引号)。
这是 ExtractField 的预期行为吗?有解决办法吗?如果重要的话,我的 KafkaConnect 版本是 2.2.2,代理版本是 2.5.0。
【问题讨论】:
-
生产者和连接转换器使用什么序列化格式?字段提取保留类型,因此带引号的字符串将保持引用
-
在我看来,您将 JSON 数据作为字符串使用(或将字符串重新序列化为 JSON),是的,引号会被转义
-
@OneCricketeer 我没有指定任何序列化格式。当涉及到序列化时,一切都是默认的。有没有快速摆脱引号的方法?我是否必须以某种方式自定义序列化?
-
没有默认格式。在连接器中,您将在属性文件之一中定义
value.converter。除此之外,尚不清楚您实际上是如何使用该主题的数据
标签: jdbc apache-kafka apache-kafka-connect