jdbc - 防止 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"
解决方案
我的错...我错误地配置了连接器上的主键。我认为我正确地告诉它将主题键转换为表主键。最后,以下连接器配置起作用:
"pk.mode": "record_key",
"pk.fields": "[Key column name here]"