通过Kinesis流或Firehose写入S3。

3
我有一些事件需要持续记录并上传到S3。我正在评估是否应该使用Kinesis数据流或Firehose。我还想在将对象写入S3之前等待几分钟,以便对象相对完整。
根据我的阅读,使用Kinesis数据流,我需要创建一个分析应用程序来调用Lambda函数。然后我将不得不使用Lambda函数来写入S3。或者Kinesis数据流可以直接以某种方式写入Lambda函数?我没有找到任何指示相同的内容。
Firehose没有按小时计费(而数据流是)。所以对我来说,Firehose是更好的选择吗?
1个回答

4

Kinesis Data Streams可以直接写入Lambda吗?

Data Streams无法直接写入S3。相反,Firehose可以实现此功能:

将实时流数据传递到目的地,例如Amazon 简单存储服务(Amazon S3)、Amazon Redshift、Amazon Elasticsearch Service(Amazon ES)、Splunk以及任何定制的HTTP端点或由支持的第三方服务提供商拥有的HTTP端点,包括Datadog、MongoDB和New Relic。

此外,Firehose允许您在将记录写入S3之前缓冲这些记录。写入可以基于缓冲区大小或时间进行。除此之外,您还可以在将记录写入S3之前使用lambda函数处理这些记录

因此,总体而言,Firehose似乎比Data Streams更适合您的用例。


谢谢。我仍在努力理解 Firehose 何时会不如流。它只是数据保留时间和在流中我们可以执行直接的 SQL 查询。如果我既不需要 SQL 查询,也不需要保存数据超过 24 小时,那么从这个角度来看,我是否正确地选择了 Firehose? - curiousengineer
@curiousengineer FH不是实时的。由于缓冲,它是伪实时的,这在许多用例中可能不可接受。我们也可以直接从FH读取。根据您的描述,FH似乎比DS更好的选择。 - Marcin
1
谢谢。我正在将数据传输到S3,然后再传输到Snowflake。实际上,一些延迟更好。事实上,我想要Firehose提供的备份时间。谢谢。 - curiousengineer
@curiousengineer 没问题。很高兴我能帮到你 :-) - Marcin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接