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

Dig*_*ela 5 apache-kafka apache-kafka-connect

我正在使用 JDBC 源连接器从 Teradata 表读取数据并推送到 Kafka 主题。但是当我尝试使用 JDBC 接收器连接器读取 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** 
Run Code Online (Sandbox Code Playgroud)

下面是我的水槽连接器-

{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.fields=USERID+DATABASEID
auto.evolve=true
insert.mode=upsert
}
Run Code Online (Sandbox Code Playgroud)

请建议我如何使用具有给定主键的 JDBC 接收器连接器。

Rob*_*att 1

您的目标的架构似乎与源不匹配。由于您已auto.evolve=true尝试连接到ALTER目标,但此处无法显示错误

\n\n
`CreateUID`\xe2\x80\xa6is not optional and does not have a default value\n
Run Code Online (Sandbox Code Playgroud)\n\n

该列是否存在于您的目标表和源表中?

\n