Kinesis Firehose是否可以替代Kinesis Streams?

3

Kinesis Firehose和Kinesis Streams都用于按照AWS博客中提到的细节加载流数据。在Firehose的情况下,没有分片或维护的概念。在这种情况下,Kinesis Firehose是否可以替代Kinesis Streams?

5个回答

5
亚马逊Kinesis Firehose是创建数据流的简单方法,其中数据被发送到以下之一:
  • Amazon S3
  • Amazon Redshift
  • Amazon Elasticache
您还可以创建Lambda函数,以便在数据通过时对其进行操作。
如果上述内容符合您的需求,则Firehose可以被视为Kinesis Streams的替代品。但是,Kinesis Streams提供更多的灵活性,因此它不是完全替代品。

4
Kinesis Firehose并不是Kinesis Streams的替代品,尽管有几个用例,但自其推出以来,Kinesis Firehose已经取代了它。
Kinesis Streams用于缓冲来自生产者的流数据,并将其流式传输到自定义应用程序中进行数据处理和分析,这些应用程序将消耗临时缓冲的流数据。 数据生成器将数据推送到Kinesis Streams -> 应用程序从流中读取数据并进行处理。 Kinesis Firehose用于捕获和加载流数据到其他亚马逊服务(如S3和Redshift),以便稍后进行分析。 数据生成器将数据推送到Kinesis Firehose -> 使用Lambda进行数据转换 -> 存储在S3或Redshift中。 这两种方法也可以组合使用,其中Kinesis Streams可以将数据流式传输到Kinesis Firehose,以便在处理后进行持久化。

0
选择使用哪种服务时需要考虑每个解决方案的限制和可扩展性。AWS Firehose的固定限制为5mb/sec或5000 rec/sec(详情请参见此处),但可以通过请求表格联系AWS进行增加。另一方面,AWS Kinesis可以通过增加每个流的分片数量轻松扩展(默认最多500个分片)。主要问题在于每个分片都有自己的成本,并且只能通过将当前分片数量翻倍来进行扩展或缩小。
正如Ashan所说,这些服务具有不同的用途,但您可以根据自己的需求单独使用每个服务,或将它们组合起来使用。这里的主要优势是,Kinesis Stream可以被许多消费者使用,并由许多生产者提供数据。另一方面,Firehose Streams作为其他数据源(例如Kinesis Stream)的消费者,并且只能将数据输出到一个目标(S3、Redshit、Elasticsearch、Splunk)。

0

如果使用Kinesis Firehose没有数据持久化,那么不确定它如何成为替代品,除非您的意思是在没有数据持久化的情况下不需要数据持久化,或者可能是成本问题,那么您的选择将是尽快分析该数据,这就是Kinesis Firehose,并最终将其存储在S3或ElasticSearch集群中。


0

不,只是目的不同。

Kinesis Streams 是通过 Kinesis Producer Library 构建应用程序,并将数据放入流中,然后使用使用 Kinesis Client Library 的应用程序进行处理,再使用 Kinesis Connector Library 将处理后的数据发送到 S3、Redshift、DynamoDB 或 ElasticSearch。

相比之下,Kinesis Firehose 更简单,您只需要创建传递流并直接使用 Kinesis Agent 或 API 将数据发送到 S3、Redshift 或 ElasticSearch 中即可将数据存储在这些服务中。

另一方面,Kinesis Streams 可以将数据存储长达 7 天。

如果您想对流数据进行某些自定义处理,则可以使用 Kinesis Streams。而使用 Kinesis Firehose,您只需将其纳入 S3、Redshift、DynamoDB 或 ElasticSearch 中即可。


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