【问题标题】:Dynamo Db stream direct into Elastic Search without other middle layerDynamodb 流直接进入 Elasticsearch,无需其他中间层
【发布时间】:2018-06-13 00:54:23
【问题描述】:

我们可以直接将 dynamo db 数据流式传输到 AWS 弹性搜索服务而不使用 Logstash,因为使用 Logstash 会产生额外费用吗?在我在线阅读的所有文章中,我们可以使用 logstash 或 lambda 来实现这一点。

【问题讨论】:

  • 由于 DynamoDB 不推送数据,而 Elasticsearch 也不拉取数据,因此您需要某种中间层从 DynamoDB 中拉取数据并推送到 Elasticsearch。

标签: amazon-web-services elasticsearch logstash amazon-dynamodb amazon-dynamodb-streams


【解决方案1】:

好像可以:https://aws.amazon.com/blogs/compute/indexing-amazon-dynamodb-content-with-amazon-elasticsearch-service-using-aws-lambda/

我过去在 AWS 上使用过 DynamoDB,设置流以将更改从 DynamoDB 推送到端点,然后使用 Logstash 从端点读取并将更改写入 ES。看来现在您可以在流上使用 Lambda 来写入 ES 而无需 Logstash。

也就是说,Logstash 方法还会在启动时迁移 dynamoDB 表中的所有现有数据。上面列出的流/lambda 方法显然没有这样做。为了提供该功能,本文提到设置一个额外的 Kinesis Stream,将其用作 ES 编写器 lambda 的第二个输入,然后运行一些 python 代码或类似代码将所有现有数据从 DB 加载到 kinesis 流中。

这似乎比仅使用 Logstash 覆盖这两种情况要复杂得多,而且成本可能更高。

【讨论】:

  • 那么,这意味着无论如何我都必须使用中间层,否则就无法将数据直接从 dynamodb 流传输到弹性搜索?
  • 是的,好像是这样。在 ES 上为 DynamoDB 设置流组件非常简单且成本低廉,但处理该流并将其写入 ES 需要某种中间件,无论是 Lambda、Logstash 还是其他东西。
猜你喜欢
  • 1970-01-01
  • 2011-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多