0

J'essaye de lire 2 sujets kafka en utilisant le connecteur d'évier JDBC et de l'augmenter en 2 tables Oracle que j'ai créées manuellement. Chaque table possède 1 clé primaire que je veux utiliser en mode upsert. Le connecteur fonctionne correctement si je n'utilise qu'un seul sujet et seulement 1 champ dans pk.fields mais si j'entre plusieurs colonnes dans pk.fields un de chaque table, il ne reconnaît pas le schéma. Ai-je manqué quelque chose s'il vous plaît suggérer.JDBC Sink Connector - Mise à jour dans plusieurs tables à partir de plusieurs sujets en utilisant kafka-connect

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 

Répondre

0

Si les PK sont différents, il suffit de créer deux connecteurs d'évier différents. Ils peuvent tous deux fonctionner sur le même agent Kafka Connect.

Vous avez également la possibilité d'utiliser la clé du message Kafka lui-même. Voir doc pour plus d'informations. C'est l'option la plus évolutive, et il vous suffira ensuite de vous assurer que vos messages ont été correctement saisis pour que cela se répercute dans le récepteur JDBC.

+0

Merci beaucoup Robin mais à l'avenir le nombre de sujets continuera à augmenter peut être jusqu'à 100 et à gérer 100 connecteurs, est-ce une bonne option? Aussi, nous avons l'intention de faire de notre pipeline de données en temps réel en utilisant kafka connect car nos sources seront multiples base de données oracle et puits sera une maison de données oracle, ne sera-t-il pas difficile de gérer autant de connecteurs? –

+0

J'ai mis à jour ma réponse - vous pouvez également utiliser l'option 'record_key', et assurez-vous que vos messages kafka sont codés en conséquence. Quelle option utilisez-vous pour extraire les données d'Oracle? Des outils comme GoldenGate vous permettent de spécifier la clé, vous pouvez également utiliser [SMT] (https://www.confluent.io/blog/simplest-useful-kafka-connect-data-pipeline-world-thereabouts-part-3/) dans Se connecter pour définir les clés –