使用 kafka-connect 从多个主题更新插入到多个表中

问题描述 投票:0回答:2

我正在尝试使用 JDBC 接收器连接器读取 2 个 kafka 主题,并更新插入到我手动创建的 2 个 Oracle 表中。每个表都有 1 个主键,我想在更新插入模式下使用它。如果我仅使用 1 个主题和

pk.fields
中的 1 个字段,连接器工作正常,但如果我在
pk.fields
中输入每个表中的多列,则它无法识别架构。我错过了什么请建议。

name=oracle_sink_prod
connector.class=io.confluent.connect.jdbc.JdbcSinkConnector
tasks.max=1
topics=KAFKA1011,JAFKA1011
connection.url=URL
connection.user=UID
connection.password=PASSWD
auto.create=false
table.name.format=KAFKA1011,JAFKA1011
pk.mode=record_value
pk.fields= ID,COMPANY 
auto.evolve=true
insert.mode=upsert

//ID is pk of kafka1011 table and COMPANY is of other
jdbc apache-kafka apache-kafka-connect confluent-platform
2个回答
3
投票

如果 PK 不同,只需创建两个不同的接收器连接器即可。它们都可以在同一个 Kafka Connect 工作线程上运行。

您还可以选择使用 Kafka 消息本身的密钥。请参阅doc了解更多信息。这是更具可扩展性的选项,然后您只需确保消息的键控正确,即可流向 JDBC 接收器。


0
投票

我也面临着同样的问题,有人可以详细说明一下吗?我对 Kafka 很陌生,所以需要更多细节。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.