在将其推送到主题之前,是否有任何从csv读取并转换为Avro的kafka连接器?
我经历了众所周知的https://github.com/jcustenborder/kafka-connect-spooldir,但它仅读取并推送到该主题。 我打算修改代码库以供自定义使用,但是在进行更改之前,我只想检查是否已有这样的连接器。
答案 0 :(得分:1)
kafka-connect-spooldir
确实按照您的描述进行。运行它时,只需将Kafka Connect设置为使用Avro转换器即可。例如:
"key.converter": "io.confluent.connect.avro.AvroConverter",
"key.converter.schema.registry.url": "http://schema-registry:8081",
"value.converter": "io.confluent.connect.avro.AvroConverter",
"value.converter.schema.registry.url": "http://schema-registry:8081",
有关转换器和连接器如何关联的更多信息,请参见https://www.confluent.io/blog/kafka-connect-deep-dive-converters-serialization-explained。
根据您的评论进行编辑:
当我使用kafka-console-consumer时,我看到的数据为
103693(2018-03-11T09:19:17Z Sugar - assa8.7
当我使用kafka-avro-console-consumer格式时
{"order_id":{"string":"1035"},"customer_id":{"string":"93"},"order_ts":{"string":"2018-03-11T09:19:17Z"},"product":{"string":"Sugar - assa"},"order_total_usd":{"string":"8.7"}}.
这表明您的主题是 Avro数据。 kafka-avro-console-consumer
的全部要点是它将二进制Avro数据解码并以纯格式呈现。 kafka-console-consumer
的输出显示了原始Avro,其中的某些部分可能看起来易于阅读(Sugar - assa
),但其他部分显然不是(103693
)