繁体   English   中英

对于 Elasticsearch 和 RabbitMQ,将数据导入 S3 的最佳方法是什么?

[英]What is the best approach to getting data into S3 for Elasticsearch and RabbitMQ?

在我的公司,我们开发了一些游戏,其中一些游戏的事件被发送到 Elasticsearch 和其他到 RabbitMQ。 我们有一个本地 CLI,它从两者中获取数据,将消息编译为压缩 (Gzip) JSON 文件,然后另一个 CLI 将它们转换为 SQL 语句并将它们扔到本地 Z9778840A01012B30BCA28 服务器中。 我们现在想扩大规模,但目前的设置很痛苦,而且离实时分析还差得很远。

我最近在 Python 中构建了一个应用程序,我计划将其发布到 AWS 中的 docker 容器中。 该脚本从 Elasticsearch 抓取数据,编译成小型压缩 JSONS 并发布到 S3 存储桶。 从那里数据被摄取到雪花中进行分析。 到目前为止,我能够很快地获取数据,并且看起来很有希望作为替代方案。

我计划用 RabbitMQ 做类似的事情,但我想找到一个更好的替代方案,它可以让这个摄取过程无缝地发生,并帮助我避免在 python 代码中实现各种异常调用。

  1. 我进行了一些研究,发现可能有一种方法可以将 RabbitMQ 链接到 Amazon Kinesis Firehose。 我的问题是:如何将 stream 从 RabbitMQ 发送到 Kinesis?

  2. 对于 Elasticsearch,实现这一目标的最佳方法是什么? I've read about the logstash plugin for S3 ( https://www.elastic.co/guide/en/logstash/current/plugins-outputs-s3.html ) and about logstash plugin for kinesis ( https://www. elastic.co/guide/en/logstash/current/plugins-inputs-kinesis.html )。 哪种方法最适合实时摄取?

我的回答将非常有神论,需要在现实世界中进行调整测试并适应您的用例。 对于近乎实时的行为,我会使用logstash

您可以通过 output 到 RabbitMQ 创建更多可扩展架构,并使用其他管道侦听队列并执行其他任务。

  • 从logstash ES -> Rabbit MQ
  • 从logstash RabbitMQ -> SQL
  • 从logstash RabbitMQ -> Kinesis
  • 从logstash RabbitMQ -> AWS
  • ETC....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM