首页 > 解决方案 > kafka 连接 jdbc sink 值 schema 必须是 Struct 类型

问题描述

我想使用带有 avro 转换器的 kafka connect jdbc sink 连接器。

这些是我的 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 模式类型有:记录、枚举、数组、映射、联合和固定,但没有结构。

我错过了什么?

谢谢 !!

标签: jdbcapache-kafkaavroapache-kafka-connect

解决方案


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

错误是说您的数据不是记录。

架构设置为 false

这些属性对 Avro 转换器没有任何意义。Avro总是有一个模式

我想使用带有 avro 转换器的 kafka connect jdbc sink 连接器。

然后生产者需要发送带有模式的记录。这包括启用了模式的 Avro 记录或 JSON


推荐阅读