Как перенести данные из корзины S3 в Kafka - PullRequest
0 голосов
/ 03 апреля 2019

Существуют примеры и документация по копированию данных из тем Кафки в S3, но как копировать данные из S3 в Кафку?

Ответы [ 2 ]

1 голос
/ 03 апреля 2019

В зависимости от вашего сценария или желаемой частоты загрузки объектов вы можете использовать лямбда-функцию для каждого события (например, каждый раз при загрузке файла) или в качестве cron. Эта лямбда работает как производитель с использованием Kafka API и публикуется в теме.

Особенности:

  • Триггером для лямбда-функции может быть событие s3:PutObject, исходящее из непосредственно s3 или событий облачного наблюдения .
  • Вы можете запустить лямбда как хрон , если вам не нужны объекты мгновенно. Альтернативой в этом случае также может быть запуск cron на экземпляре EC2, у которого есть производитель Kafka и разрешения на чтение объектов из s3, и он продолжает подталкивать их к темам kafka.
0 голосов
/ 03 апреля 2019

Когда вы читаете объект 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.


Проблемы при таком подходе заключаются в том, что вам необходимо отслеживать, какие файлы были прочитаны до сих пор, а также обрабатывать частично прочитанные файлы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...