在使用kafka s3 sink connect时,我可以使用schema registry来获取模式吗?

jljoyd4f  于 2021-06-06  发布在  Kafka
关注(0)|答案(1)|浏览(451)

我有一个Kafka主题,里面的值是avro格式,其中的模式存储在模式注册表中。
现在我想设置一个s3接收器,如下所示:https://docs.confluent.io/current/connect/connect-storage-cloud/kafka-connect-s3/docs/s3_connector.html#basic-示例
在网页中,他们使用

schema.generator.class=io.confluent.connect.storage.hive.schema.DefaultSchemaGenerator

当我尝试重新加载生成的.avro数据时,我发现模式有点不同。例如,嵌套枚举类型变为string。我只能恢复一个 GenericRecord 而不是 SpecificRecord .
有没有一种方法可以指定一个从schema registry检索schema的schema生成器?

gab6jxml

gab6jxml1#

假设您使用了

format.class=io.confluent.connect.s3.format.avro.AvroFormat

如果connect无法访问注册表,它将无法写入avro记录
在kafka connect worker属性文件中设置注册表配置,而不是连接器本身(命名为connect-avro.properties之类的)。
它被转换为一个通用记录,因为您的特定记录很可能不在connect类路径上。“额外的非模式”数据连接添加的只是元数据,但您可以禁用它

connect.meta.data=false

您提到的那个属性实际上仅由hdfs connect用于配置单元模式,而不是s3 connect与avro模式。至少,在3.3.0之后,如果我回忆起删除该属性的提交,那么该属性不是“必需”的
关于枚举,是的,它们被转换为字符串,这实际上是一个开放的问题,我相信只有在最新版本(confluent 4.1)中才解决
您需要设置此属性来修复它

enhanced.avro.schema.support=true

相关问题