我已将Kafka Connect HDFS配置为可在Azure Datalake上运行,但是我只是注意到,键(字符串)并没有持久存在,只有Avro值存在。
考虑到这一点,我认为这是有道理的,因为我要在数据湖中应用的分区与键无关,并且我没有指定一些新的Avro Schema,它将键String合并到现有的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设置的实际接收器连接器中,我只需将输出格式指定为
...
"format.class": "io.confluent.connect.hdfs.avro.AvroFormat"
...
因此连接器仅假定要写入Avro值。
所以我有两个问题。如何告诉连接器应将密钥和值一起保存为新Avro架构的一部分,以及在哪里定义该架构?
请注意,这是一个Azure HDInsight群集,因此不是Confluent Kafka解决方案(尽管我可以访问开源的Confluent代码,例如Kafka Connect HDFS)