Kafka Connect - 无法更改缺少的字段SinkRecordField {schema = Schema {BYTES},name ='CreateUID',isPrimaryKey = true},

时间:2017-10-05 23:25:48

标签: apache-kafka apache-kafka-connect

我正在使用JDBC源连接器从Teradata表读取数据并推送到Kafka主题。但是当我尝试使用JDBC sink连接器来读取Kafka主题并推送到Oracle表时,它会抛出以下错误。 我确定错误是因为参数pk.modepk.fields,我不知道该使用什么。

我的terradata有一个主键UserID + DatabaseID。我在Oracle中创建了表,其主键为Userid + databaseID。

** 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** 

下面是我的接收器 -

{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
}

请建议如何将JDBC接收器连接器与给定的主键一起使用。

1 个答案:

答案 0 :(得分:1)

看起来目标的架构与源不匹配。由于您auto.evolve=true尝试连接尝试ALTER目标,因此无法显示错误

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

目标表中是否存在该列以及源?