kafka connect jdbc sink值模式必须为Struct类型

时间:2020-02-18 17:27:20

标签: jdbc apache-kafka avro apache-kafka-connect

我想在avro转换器上使用kafka connect jdbc接收器连接器。

这些是我的avro配置:

"key.converter":"io.confluent.connect.avro.AvroConverter",
"key.converter.schema.registry.url" : "http://myurl.com" ,
"value.converter":"io.confluent.connect.avro.AvroConverter",
"value.converter.schema.registry.url" : "http://myurl.com" ,

模式设置为false

key.converter.schemas.enable=false
value.converter.schemas.enable=false

现在,当我启动连接器时,出现此错误

由以下原因引起:org.apache.kafka.connect.errors.ConnectException:值架构必须为Struct类型

从我读到的内容来看,Struct用于json模式,对吗?如果我使用的是Avro模式,我应该没有任何结构吗?

Avro模式类型为:记录,枚举,数组,映射,联合和固定的,但没有结构。

我想念什么?

谢谢!!

2 个答案:

答案 0 :(得分:1)

Avro 记录创建一个Struct Connect数据类型。

错误表明您的数据不是记录。

模式设置为false

这些属性对Avro转换器没有任何意义。 Avro 总是 具有架构

我想在avro转换器上使用kafka connect jdbc接收器连接器。

然后,生产者需要发送带有模式的记录。这包括具有启用

模式的Avro记录或JSON

答案 1 :(得分:0)

Avro结构始终具有架构。所以您需要进行如下设置

stdout