我是否可以以某种方式将firehose流缓冲间隔的持续时间延长到900秒以上?我正在处理大小约100kb的小文件,经过15分钟的流式传输到s3。我需要延长缓冲时间间隔或其他方式合并4个文件每小时,什么是最好的方式做到这一点?
我不想下载这些文件,然后进行合并,因为有许多firehose流,所以只考虑在AWS上的直接解决方案。
我读了太多与这个问题相关的东西,但我找不到任何有用的答案。
发布于 2018-10-15 18:52:47
不幸的是,900秒(15分钟)是Kinesis等待缓冲的时间的硬限制。
但是,如果您的数据移动速度很慢,那么您可以自己处理每小时一次的合并。
一种方法是使用计划每小时调用一次的lambda函数,列出目标存储桶中的文件,读取它们,合并它们,将它们写入“合并”的存储桶/前缀,然后删除合并的文件。
或者,您可以在写入文件时调用S3消防水桶上的lambda触发器。此触发器将读取该存储桶中的所有文件,并合并它们。它的优点是,您可以并行合并存储桶,而不必等待一个小时才能合并文件。
(您应该注意,在写入速度较快或列出大量文件时,S3并不一致,因此,如果您的数据速度增加到一分钟写入多个文件的程度,这不是一个好的解决方案。)
https://stackoverflow.com/questions/52813088
复制相似问题