Существует множество примеров того, как данные сохраняются AWS Firehose в корзину S3 и параллельно передаются в какое-то приложение обработки (как на картинке выше).
Но я ничего не могу найтио хорошей практике воспроизведения этих данных из корзины s3 в случае, если приложение обработки было сломано.И нам нужно предоставить ему исторические данные, которые у нас есть в s3, но которых уже нет в Firehose.
Я могу подумать о воспроизведении его с помощью Firehose или Lambda, но:
- Kinesis Firehose не может использовать из корзины.
- Lambda потребуется десериализовать файл .parquet для отправки его в Firehose или поток данных Kinesis.И меня смущает эта неявная десериализация, потому что Firehose явно ее сериализует.
Или, может быть, есть какой-то другой способ вернуть данные из s3 в поток, который я полностью пропускаю?
РЕДАКТИРОВАТЬ: Более того, если мы будем запускать лямбду для передачи записей в поток, вероятно, потребуется более 15 минут.Таким образом, другой вариант - запустить скрипт, который работает на отдельном экземпляре EC2.Но этот метод извлечения данных из s3 выглядит намного сложнее, чем хранить его там с помощью Firehose, что заставляет меня думать, что должен быть какой-то более простой подход