我正在尝试使用JDBC sink连接器读取2个kafka主题并将其插入到我手动创建的2个Oracle表中。每个表都有1个主键我想在upsert模式下使用它。如果我只使用pk.fields
中的1个主题和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
答案 0 :(得分:1)
如果PK不同,只需创建两个不同的接收器连接器。他们都可以在同一个Kafka Connect工作人员上运行。
您还可以选择使用Kafka消息本身的密钥。有关详细信息,请参阅doc。这是一个更具伸缩性的选项,您只需要确保正确键入消息,以便将其传递到JDBC Sink。