amazon-web-services - 延长 aws firehose 流缓冲期
问题描述
我可以以某种方式将 firehose 流缓冲间隔的持续时间延长到 900 秒以上吗?在流式传输到 s3 15 分钟后,我正在处理大小约为 100kb 的小文件。我需要延长缓冲间隔或其他方式来每小时合并 4 个文件,最好的方法是什么?
我不想下载这些文件然后进行合并,因为有很多 firehose 流,所以只考虑 AWS 上的直接解决方案。
我已经阅读了很多与此问题相关的内容,但找不到任何有用的答案。
解决方案
不幸的是,900 秒(15 分钟)是 Kinesis 等待缓冲时间的硬性限制。
但是,如果您的数据移动缓慢,那么您可以自己处理每小时合并。
一种解决方法是使用 lambda 函数,该函数计划每小时调用一次,列出目标存储桶中的文件,读取它们,合并它们,将它们写入“合并”存储桶/前缀,然后删除合并的文件。
或者,您可以在写入文件时调用 S3 消防软管桶上的 lambda 触发器。此触发器将读取该存储桶中的所有文件,并将它们合并。它的优点是您可以并行合并您的存储桶,并且不必等待一个小时来合并您的文件。
(您应该注意,S3 在快速写入速度或列出大量文件时不一致,因此如果您的数据速度增加到您每分钟写入多个文件的程度,这不是一个好的解决方案。)
推荐阅读
- javascript - 未捕获的类型错误:无法在 var 数据上设置 null 属性“innnerHTML”
- html - Adding formControlName makes the default value disappear in my form's dropdown in Angular
- arrays - 为什么 PowerShell 会自动展平数组?
- android - 如何制作负载回收器适配器以使其快速
- go - 如何返回频道
- python-3.x - 如何正确显示解压后的 UDP 数据
- caching - 在这些缓存场景中,代码在哪里执行?
- cordova - 如何在没有 Ionic 服务的情况下在我的设备上测试我的应用程序
- docker - 无法在主节点上运行 Kubernetes 仪表板
- java - 在 oracle DB 中插入字符串值在 sql developer 中显示空值