【问题标题】:Kafka Connect JdbcSourceConnector ExtractField leaves double quotes around stringKafka Connect JdbcSourceConnector ExtractField 在字符串周围留下双引号
【发布时间】: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


【解决方案1】:

我通过像这样指定value.converter 解决了这个问题:

  "value.converter": "org.apache.kafka.connect.storage.StringConverter",

有了这个配置,我再也看不到多余的双引号字符了。

【讨论】:

    猜你喜欢
    • 2011-01-27
    • 2022-01-18
    • 1970-01-01
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    相关资源
    最近更新 更多