Kafka Connect:一个接收器连接器,用于从一个主题写入多个表

Posted

技术标签:

【中文标题】Kafka Connect:一个接收器连接器,用于从一个主题写入多个表【英文标题】:Kafka Connect: a sink connector for writing multiple tables from one topic 【发布时间】:2021-11-16 18:26:36 【问题描述】:

我想使用 Kafka Connect 通过 CDC 检测 Postgres DB 上一组表的更改,并将它们作为消息推送到一个主题中,键作为主表的逻辑键。

这将使消费者能够以正确的顺序使用数据更改,以将它们应用到目标数据库。

是否有 Source 和 Sink 连接器可以让我实现这个目标?

我正在使用 Debezium CDC Source Connector for Postgres... 我可以将其配置为将所有表的所有消息路由到一个主题中。

但是我找不到能够使用消息的 Sink 连接器,并根据消息的架构写入正确的表。

【问题讨论】:

您可以在 debezium 连接器 "transforms": "unwrap", "transforms.unwrap.add.fields": "table" 中添加此配置,这将在您的 kafka 消息负载中添加 __table 并使用此字段来决定接收器连接器的目标表。 【参考方案1】:

如果您正在寻找特定的接收器连接器,则没有属性

您可以对记录的Extract 部分使用单消息转换来设置来自单个接收器连接器主题的传出主题名称

例如:https://docs.confluent.io/platform/current/connect/transforms/extracttopic.html

【讨论】:

以上是关于Kafka Connect:一个接收器连接器,用于从一个主题写入多个表的主要内容,如果未能解决你的问题,请参考以下文章

Kafka 连接与多个消息队列的集成

Kafka Connect JDBC 接收器连接器不起作用

Kafka Connect - 不适用于更新操作

kafka连接器不会自动启动

Confluent Kafka Connect MySQL Sink Connector 的开源替代方案?

KAFKA SINK CONNECT: WARN 批量请求 167 失败。重试请求