amazon-web-services - 缓冲传入数据并放入 S3
问题描述
对于特定的业务需求,我需要将 5 分钟的数据从 AWS IOT 批量处理到 S3 并处理数据。
- 我尝试了 firehose 方法,将数据放入 firehose 存储桶并缓冲 5 分钟(可能长达 900 秒)。但是,这仅适用于有限数量的传入记录,因为一旦满足大小阈值 (128MB),firehose 将不会等待 5 分钟将数据写入 S3。因此,这是不可扩展的。
在 AWS 中实现这一目标的其他方法是什么?
感谢您的意见。
解决方案
Amazon Kinesis Data Firehose很方便,因为它可以接受传入的数据流并将其保存到 Amazon S3。你是正确的,最大缓冲区是900 seconds和128MB。
请参阅:Amazon Kinesis Data Firehose 限制
听起来您对这样的限制不满意,无论文件大小如何,您都希望在 5 分钟后获得一个文件。为此,您需要使用普通的Amazon Kinesis Stream 和您自己的消费者从流中读取数据。这是一个相当复杂的过程,涉及让 Amazon EC2 实例读取数据并将其复制到 S3。
使用 Amazon Kinesis Data Firehose 会容易得多。也许一种选择是以正常的限制间隔让 Firehose 输出文件,但使用其他东西每 5 分钟触发一次处理(或任何你想做的事情)。
推荐阅读
- javascript - 如何观察对象更改然后分配给新对象并格式化数组值?
- sql - 用户在给定年份的总交易量
- flutter - 将图像放入颤动的颤动代码错误
- python - 问题:Python String.split 函数问题
- javascript - 如何创建产品定制页面,用户可以在其中进行 3D 定制
- javascript - 这个表达式在 JS 中是什么意思?
- python - TypeError:“Mul”Op 的输入“y”的类型为 float32,与参数“x”的类型 uint8 不匹配
- svm - 建议使用 WEKA 进行 SVM
- python - 从 XHR 获取价格并结合 Scrapy
- flutter - 删除小部件和键盘之间的 TextFormField 额外空间