如何解决将数据送入Elasticsearch和RabbitMQ的S3的最佳方法是什么?
在我的公司中,我们开发了一些游戏,对于某些游戏,事件被发送给Elasticsearch,而其他事件则被发送给RabbitMQ。我们有一个本地CLI,该CLI可以从这两者中获取数据,将消息编译成压缩的(Gzip)JSON文件,然后另一个CLI将它们转换为SQL语句,然后将它们扔到本地SQL Server中。我们现在想扩大规模,但是当前的设置非常麻烦,而且无法实时分析。
我最近用Python构建了一个应用程序,打算将其发布到AWS的Docker容器中。该脚本从Elasticsearch获取数据,将其编译为小型压缩JSONS,然后发布到S3存储桶。从那里,数据被摄取到Snowflake中进行分析。到目前为止,我能够相当快地获取数据,并且有望作为替代方案。
我打算对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)的信息。哪种方法最适合实时摄取?
解决方法
我的回答非常有主题意义,需要在现实世界中进行测试并适应您的用例。 对于近乎实时的行为,我将使用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
- 等...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。