我正在使用JDBC源连接器从Teradata表读取数据并推送到Kafka主题。但是当我尝试使用JDBC sink连接器来读取Kafka主题并推送到Oracle表时,它会抛出以下错误。
我确定错误是因为参数pk.mode
和pk.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接收器连接器与给定的主键一起使用。
答案 0 :(得分:1)
看起来目标的架构与源不匹配。由于您auto.evolve=true
尝试连接尝试ALTER
目标,因此无法显示错误
`CreateUID`…is not optional and does not have a default value
目标表中是否存在该列以及源?