2016-10-18 2 views
0

Должен ли я использовать лямбда или использовать искровой поток, чтобы объединить каждый входящий потоковый файл в один большой файл в s3. ?Мы пытаемся сохранить журналы в S3 с помощью Kinesis firehose. Однако я хотел бы объединить каждый поток данных в один большой файл. Как мне это сделать?

  • Благодаря Сандип

ответ

-1

Вы хотите использовать AWS Lambda для передачи данных Kinesis потока в Kinesis шланговой. Оттуда вы можете использовать Firehose для добавления данных на S3.

См. AWS Big Data Blog для примера в реальной жизни. На странице GitHub приведен пример KinesisToFirehose Lambda.

1

Вы не можете добавлять файлы в S3, вы читали бы весь файл, добавляли новые данные и затем записывали обратно файл - либо с новым именем, либо с тем же именем.

Однако, я не думаю, что вы действительно хотите это сделать - рано или поздно, если у вас нет тривиального количества данных, поступающих на firehose, ваш s3-файл будет слишком большим, чтобы постоянно читать, добавлять новый текст и отправку обратно на s3 эффективным и экономичным способом.

Я бы порекомендовал вам установить лимиты пожарной тревоги на самый длинный интервал времени/наибольшего размера (чтобы, по крайней мере, сократить количество файлов, которые вы получаете), а затем переосмыслить любую обработку, которую вы имели в виду, что заставляет вас думать вам нужно постоянно объединять все в один файл.