2017-10-05 1 views
0

Ich benutze JDBC Source Connector, um Daten aus einer Teradata Tabelle zu lesen und zu Kafka Thema zu schieben . Aber wenn ich versuche, JDBC-Senken-Konnektor zu verwenden, um Kafka-Thema zu lesen und zu Oracle-Tabelle zu schieben, löst es den folgenden FEHLER aus. Ich bin mir sicher, dass der Fehler wegen der Parameter pk.mode und pk.fields ist, von denen ich nicht sicher bin, was ich verwenden soll.Kafka Connect - Kann ALTER nicht hinzufügen fehlendes Feld SinkRecordField {schema = Schema {BYTES}, name = 'CreateUID', isPrimaryKey = true},

Mein terradata hat einen Primärschlüssel UserID + DatabaseID. Ich habe die Tabelle in Oracle mit dem primay Schlüssel als Userid + databaseID erstellt.

** ERROR Cannot ALTER to add missing field SinkRecordField{schema=Schema{BYTES}, 
name='CreateUID', isPrimaryKey=true}, as it is not 
optional and does not have a default value** 

Unten ist mein Waschbecken Steckverbinder-

{name=teradata_sink 
connector.class=io.confluent.connect.jdbc.JdbcSinkConnector 
tasks.max=1 
topics=TERADATA_ACCESSRIGHTS 
connection.url= 
connection.user= 
connection.password= 
auto.create=false 
table.name.format=TERADATA_ACCESSRIGHTS 
pk.mode=record_value 
pk.fileds=USERID+DATABASEID 
auto.evolve=true 
insert.mode=upsert 
} 

Bitte legen nahe, wie kann ich die JDBC versenken Anschluss mit dem angegebenen Primärschlüssel verwenden.

Antwort

0

Es sieht so aus, als ob das Schema Ihres Ziels nicht mit der Quelle übereinstimmt. Da Sie auto.evolve=true haben versucht, Connect, das Ziel zu ALTER, und hier kann es nicht für die Fehler

`CreateUID`…is not optional and does not have a default value 

Ist diese Spalte in Ihrer Zieltabelle sowie Quelle existiert gezeigt?

+0

Ja die Spalte existiert in meiner Quell- und Zieltabelle beide auch ich versuchte mit auto create.enable = false und erstellte die gleiche Schematabelle wie es in Teradata war, aber es wirft den obigen Fehler. –

+0

hast du dein Problem gelöst? – Mikhail

Verwandte Themen