我有一个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生成器?
1条答案
按热度按时间gab6jxml1#
假设您使用了
如果connect无法访问注册表,它将无法写入avro记录
在kafka connect worker属性文件中设置注册表配置,而不是连接器本身(命名为connect-avro.properties之类的)。
它被转换为一个通用记录,因为您的特定记录很可能不在connect类路径上。“额外的非模式”数据连接添加的只是元数据,但您可以禁用它
您提到的那个属性实际上仅由hdfs connect用于配置单元模式,而不是s3 connect与avro模式。至少,在3.3.0之后,如果我回忆起删除该属性的提交,那么该属性不是“必需”的
关于枚举,是的,它们被转换为字符串,这实际上是一个开放的问题,我相信只有在最新版本(confluent 4.1)中才解决
您需要设置此属性来修复它