Когда вы читаете объект S3, вы получаете поток байтов . И вы можете отправить любой байтовый массив в Kafka с помощью ByteArraySerializer
.
Или вы можете проанализировать этот InputStream для какого-либо пользовательского объекта, а затем отправить его , используя любой сериализатор, который вы можете настроить .
Здесь вы можете найти один пример процесса Kafka Connect (который, как я полагаю, вы сравниваете с устройством записи S3 Connect в Confluent) - https://jobs.zalando.com/tech/blog/backing-up-kafka-zookeeper/index.html, который можно настроить для чтения двоичных архивов или текста с разделителями строк из S3.
Аналогично, Apache Spark, Flink, Beam, NiFi и т. Д. Simlar Инструменты, связанные с Hadoop, могут читать из S3 и записывать события в Kafka.
Проблемы при таком подходе заключаются в том, что вам необходимо отслеживать, какие файлы были прочитаны до сих пор, а также обрабатывать частично прочитанные файлы.