对于elasticsearch和rabbitmq,将数据导入s3的最佳方法是什么?

w1e3prcc  于 2021-06-15  发布在  ElasticSearch
关注(0)|答案(1)|浏览(486)

在我的公司里,我们开发了一些游戏,其中一些游戏的事件被发送到elasticsearch,另一些则发送到rabbitmq。我们有一个本地cli,它从这两者中获取数据,将消息编译成压缩的(gzip)json文件,然后另一个cli将它们转换为sql语句,并将它们放入本地sql服务器。我们现在想扩大规模,但目前的设置是痛苦的,离实时分析还差得远。
我最近用python构建了一个应用程序,我计划将它发布到aws中的docker容器中。该脚本从elasticsearch获取数据,编译成小的压缩json并发布到s3 bucket。从那里数据被吸收到雪花中进行分析。到目前为止,我能够很快得到数据,并期待作为一个替代品。
我本来打算用rabbitmq做一些类似的事情,但我想找到一个更好的替代方法,使这个摄取过程能够无缝地进行,并帮助我避免在python代码中实现各种异常调用。
我做了一些研究,发现有一种方法可以将rabbitmq链接到amazon kinesis firehose。我的问题是:如何将流从rabbitmq发送到kinesis?
对于elasticsearch,实现这一点的最佳方法是什么?我读过关于s3的logstash插件(https://www.elastic.co/guide/en/logstash/current/plugins-outputs-s3.html)关于动觉的logstash插件(https://www.elastic.co/guide/en/logstash/current/plugins-inputs-kinesis.html). 哪种方法最适合实时摄取?

hgncfbus

hgncfbus1#

我的答案将是非常神化的,需要在现实世界中进行调整测试,并适应您的用例。对于接近实时的行为,我会使用logstash
使用elasticsearch输入和短cron。这篇文章能帮上忙https://serverfault.com/questions/946237/logstashs-elasticsearch-input-plugin-should-be-used-to-output-to-elasticsearch
s3输出(支持gzip)
可能是jdbc输出到数据库
rabbitmq输出插件
您可以通过输出到rabbitmq来创建更多可伸缩的archi,并使用其他管道来侦听队列和执行其他任务。
从logstash es->rabbit mq
从logstash rabbitmq->sql
来自logstash rabbitmq->kinesis
从logstash rabbitmq->aws
等。。。。

相关问题