首页 > 解决方案 > 缓冲传入数据并放入 S3

问题描述

对于特定的业务需求,我需要将 5 分钟的数据从 AWS IOT 批量处理到 S3 并处理数据。

  1. 我尝试了 firehose 方法,将数据放入 firehose 存储桶并缓冲 5 分钟(可能长达 900 秒)。但是,这仅适用于有限数量的传入记录,因为一旦满足大小阈值 (128MB),firehose 将不会等待 5 分钟将数据写入 S3。因此,这是不可扩展的。

在 AWS 中实现这一目标的其他方法是什么?

感谢您的意见。

标签: amazon-web-servicesamazon-s3amazon-kinesisamazon-kinesis-firehose

解决方案


Amazon Kinesis Data Firehose很方便,因为它可以接受传入的数据流并将其保存到 Amazon S3。你是正确的,最大缓冲区是900 seconds128MB

请参阅:Amazon Kinesis Data Firehose 限制

听起来您对这样的限制不满意,无论文件大小如何,您都希望在 5 分钟后获得一个文件。为此,您需要使用普通的Amazon Kinesis Stream 和您自己的消费者从流中读取数据。这是一个相当复杂的过程,涉及让 Amazon EC2 实例读取数据并将其复制到 S3。

使用 Amazon Kinesis Data Firehose 会容易得多。也许一种选择是以正常的限制间隔让 Firehose 输出文件,但使用其他东西每 5 分钟触发一次处理(或任何你想做的事情)。


推荐阅读