我已经将kafka connect hdfs配置为在azuredatalake上工作,但是我注意到密钥(字符串)并没有被持久化,只有avro值。
当我考虑这个问题时,我认为这是有意义的,因为我想在数据湖中应用的分区与键无关,并且我没有指定一些新的avro模式,它将键字符串合并到现有的avro值模式中。
现在在我运行connect-distributed.sh脚本时提供的配置中,我有(在其他配置中)
...
key.converter=org.apache.kafka.connect.storage.StringConverter
value.converter=io.confluent.connect.avro.AvroConverter
value.converter.schema.registry.url=http://<ip>:<port>
...
但是在我使用curl设置的实际sink连接器中,我只是将输出格式指定为
...
"format.class": "io.confluent.connect.hdfs.avro.AvroFormat"
...
所以连接器只是假设要写入avro值。
所以我有两个问题。如何告诉连接器它应该将键和值一起保存为新avro模式的一部分,以及在何处定义此模式?
请注意,这是一个azurehdinsight集群,因此不是一个合流kafka解决方案(尽管我可以访问开源合流代码,如kafka connect hdfs)
暂无答案!
目前还没有任何答案,快来回答吧!