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-потребительский формат
{"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
)