JDBC Sink Connector - 使用kafka-connect从多个主题插入多个表

时间:2017-09-12 17:35:55

标签: jdbc apache-kafka apache-kafka-connect confluent

我正在尝试使用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

1 个答案:

答案 0 :(得分:1)

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

您还可以选择使用Kafka消息本身的密钥。有关详细信息,请参阅doc。这是一个更具伸缩性的选项,您只需要确保正确键入消息,以便将其传递到JDBC Sink。