首页 > 解决方案 > 防止 Kafka JDBC Sink 记录 __connect_partition 和 __connect_offset

问题描述

我在 Kafka 中有一个日志压缩主题,该主题正在通过 JDBC 接收器连接器写入 Postgres。虽然我已经mode=upsert在连接器上进行了设置,但它仍然在接收器数据库中为每个值添加一个唯一的行,因为它记录了每一行的主题偏移量 ( __connect_offset) 和分区 ( __connect_partition) 以及数据。

如何禁用 JDBC Sink 连接器记录主题信息(我不关心)?添加一个fields.whitelist仅抓取我的数据列的内容并不能成功阻止此元数据潜入我的数据库。

像下面这样的 SMT 也不起作用:

"transforms": "blacklist",
"transforms.blacklist.type": "org.apache.kafka.connect.transforms.ReplaceField$Value",
"transforms.blacklist.blacklist": "__connect_partition, __connect_offset"

标签: jdbcapache-kafkaapache-kafka-connectconfluent-platform

解决方案


我的错...我错误地配置了连接器上的主键。我认为我正确地告诉它将主题键转换为表主键。最后,以下连接器配置起作用:

"pk.mode": "record_key",
"pk.fields": "[Key column name here]"

推荐阅读