延长AWS流水线缓冲时间

时间:2018-10-15 08:59:20

标签: amazon-web-services amazon-s3 aws-lambda aws-sdk amazon-kinesis-firehose

我可以以某种方式将firehose流缓冲时间间隔延长到900秒以上吗?流到s3 15分钟后,我正在处理大小约为100kb的小文件。我需要延长缓冲间隔或每小时合并4个文件的另一种方法,什么是最好的方法?

由于许多流水,我不想下载这些文件然后合并,因此仅考虑在AWS上直接解决方案。

我已经阅读了很多与此问题相关的内容,但找不到任何有用的答案。

1 个答案:

答案 0 :(得分:0)

不幸的是,900 K(15分钟)是Kinesis等待缓冲时间的硬限制。

但是,如果您的数据移动缓慢,那么您可以每小时进行一次合并。

一种解决方法是使用安排为每小时调用一次的lambda函数,列出目标存储桶中的文件,进行读取,合并,然后将其写入“合并的”存储桶/前缀中然后删除合并的文件。

或者,您可以在写入文件时在S3消防水桶上调用lambda触发器。此触发器将读取该存储桶中的所有文件,然后合并它们。它的优点是您可以并行合并存储桶,而无需等待一个小时即可合并文件。

(您应该注意,S3在快速写入速度或列出大量文件时并不一致,因此,如果您的数据速度增加到每分钟要写入多个文件的程度,则这不是一个好的解决方案。)