因为使用logstash会产生额外的费用,我们是否可以不使用logstash直接将dynamo db数据流式传输到AWS Elasticsearch 服务?在我在线阅读的所有文章中,都可以使用logstash或lambda来实现。
最佳答案
看来您可以: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表中的所有现有数据。上面列出的stream / lambda方法显然不能做到这一点。为了提供该功能,本文提到要设置一个额外的Kinesis Stream,将其用作ES编写器lambda的第二个输入,然后运行一些python代码或类似代码以将来自DB的所有现有数据加载到kinesis流中。
与仅使用Logstash来覆盖这两种情况相比,这似乎很复杂,而且成本可能更高。
关于amazon-web-services - Dynamodb流无需其他中间层即可直接进入Elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48075854/