kafka connect jdbc接收器值架构必须是struct类型

ny6fqffe  于 2021-06-05  发布在  Kafka
关注(0)|答案(2)|浏览(412)

我想使用kafka连接jdbc接收器连接器与avro转换器。
这些是我的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模式类型有:record、enum、arrays、maps、unions和fixed,但没有struct。
我错过了什么?
谢谢!!

6rvt4ljy

6rvt4ljy1#

avro记录创建 Struct 连接数据类型。
错误是您的数据不是记录。
架构设置为false
这些属性对avro转换器没有任何意义。avro总是有一个模式
我想使用kafka连接jdbc接收器连接器与avro转换器。
然后生产者需要发送带有模式的记录。这包括启用了模式的avro记录或json

rryofs0p

rryofs0p2#

avro结构始终具有模式。所以你需要设置如下所述

key.converter=org.apache.kafka.connect.storage.StringConverter
key.converter.schema.registry.url=http://localhost:8081
key.converter.enhanced.avro.schema.support=true

value.converter=io.confluent.connect.avro.AvroConverter
value.converter.schema.registry.url=http://localhost:8081
value.converter.enhanced.avro.schema.support=true

相关问题