Kinesis的多个目的地

12

我们能否使用单个Kinesis Firehose实现多个目标? 我看到了这张图片enter image description here

从这个图片上可以看出,可以从单个Firehose添加s3、redshift和elastic search。我正好想这样做。

但是当我在aws控制台上这样做时,它只要求一个目标。对于elastic search,它还要求S3。所以,我能够添加elastic search和s3,但是redhift还剩下。我不确定如何从同一kinesis中实现它。请帮忙。

2个回答

6

正如你所说,目前不支持此功能,但是使用firehose的最新添加功能,您可以使用一个firehose将数据写入3个目标。

但我不确定这是否是最佳方法,您需要比较AWS成本和开发成本,然后决定。

如果您想尝试,请按照以下步骤操作:

配置firehose将数据写入redshift,中间文件将存储在s3上(可能会删除中间文件),因此您可以使用桶复制或触发新文件通知并使用lambda函数移动到另一个存储桶。同时,为了将每个记录写入Elasticsearch,您将使用firehose lambda连接,该连接在firehose控制台中称为数据转换(下面有链接)。对于每个firehose收到的记录,编写简单的elasticsearch http post写入请求,以便您在3个目标上拥有数据。

https://aws.amazon.com/blogs/compute/amazon-kinesis-firehose-data-transformation-with-aws-lambda/

如我之前所说,这可能会更加昂贵,使用2个firehose进行redshift写和ES+S3写更加容易。


0

我目前正在研究类似的解决方案。我发现最好的方法是先设置Kinesis流,然后将Firehose作为消费者/传递流添加进去。再加上一个Lambda函数作为另外一个消费者,可以用来将数据发送到任何目的地。在我的情况下,我使用了Dynamo DB。


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