kafka连接器可从csv读取并转换为avro

时间:2019-02-06 00:21:28

标签: apache-kafka avro apache-kafka-connect

在将其推送到主题之前,是否有任何从csv读取并转换为Avro的kafka连接器?

我经历了众所周知的https://github.com/jcustenborder/kafka-connect-spooldir,但它仅读取并推送到该主题。 我打算修改代码库以供自定义使用,但是在进行更改之前,我只想检查是否已有这样的连接器。

1 个答案:

答案 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