Kinesis 的多个目的地

Multiple Destinations for Kinesis

我们可以从单个 Kinesis Firehose 获得多个目的地吗?我看到这张图了

由此看来,似乎可以从单个 firehose 添加 s3、redshift 和 elastic search。我真的很想这样做。

但是当我从 aws 控制台执行此操作时,它只要求单一目的地。对于弹性搜索,它还需要 S3。因此,我能够添加弹性搜索和 s3,但仍然保留 redhift。我不确定如何从同一个运动中做到这一点。请帮忙。

正如您所说,它现在不可用,但是,使用最近添加的 firehose 功能,您可以使用一个 firehose 写入其中的 3 个。

但我不确定这是执行此操作的最佳方式,您需要比较 aws 成本和开发成本然后再决定。

如果你想尝试这里是你可以做到的。

配置 firehose 以写入 redshift,中间文件将在 s3 上,(可能中间文件被删除)因此您可以将它们存储在另一个桶中,并使用桶复制或触发新文件通知并使用拉姆达函数。同时将每条记录写入 Elasticsearch,您将使用 firehose lambda 连接,它在 firehose 控制台中,称为数据转换。 (下面的 link)为 firehose 获得的每条记录编写一个简单的 elasticsearch http post 写入请求,因此您将拥有 3 个目的地的数据。

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

正如我之前所说,这可能会花费更多,并且使用 2 个 firehose 进行红移写入和 ES+S3 写入更容易。

我目前正在研究类似的解决方案。我发现最好的方法是首先设置 Kinesis 流,然后将 firehose 添加为 consumer/delivery 流。还有 1 个消费者作为 lambda 函数,可用于将数据发送到任何目的地。就我而言,它是发电机 DB。