【问题标题】:RDS MySQL, Kinesis Firehose, and Elasticsearch, initial data load?RDS MySQL、Kinesis Firehose 和 Elasticsearch,初始数据加载?
【发布时间】:2018-11-03 22:57:08
【问题描述】:

我需要将来自 RDS (MySQL) 和 S3(文档)的数据索引到 Elasticsearch 中,以便执行全文搜索。

我注意到AWS Kinesis 似乎很适合这个,它可以同时收听 S3 和 MySQL,将格式化的结果流式传输到 Elasticsearch。

但是,我不明白如何使用 Kinesis 批量载入现有数据。

对于 RDS-to-Elasticsearch,我已经看到了 go-mysql-elasticsearch 的替代方案,它可以为我处理这个问题,但这仍然让我无法提取千兆字节的 S3 数据。

有人解决了这个问题吗?我宁愿设置尽可能简单。

谢谢

【问题讨论】:

  • 我刚刚意识到,logstash 可以通过正确的输入插件实现这两种功能。我唯一的额外收获是,如果可能的话,我想向文件条目添加一些元数据。这可能涉及查询 mysql 以获取该数据。

标签: mysql amazon-web-services elasticsearch amazon-kinesis-firehose


【解决方案1】:

数据丰富/元数据

就向 ElasticSearch 中的条目添加元数据而言,您可能会想到有时称为数据“丰富”的东西。有一个非常 detailed blog post over here,它讨论了如何使用静态和动态参考数据来摄取和丰富数据。通过使用 AWS Lambda 丰富您的数据,您可以对数据源运行动态查询,并在记录通过 Kinesis Firehose 摄取到 ElasticSearch 之前对其进行修改。

批量导入

Kinesis Data Streams API 支持名为 PutRecords 的批量提取 API。您可以通过一次 API 调用将多达 500 条记录提取到您的 Kinesis Data Stream 中。关于这个的公告是over here

记录设置摄取和扩充管道后,您可以编写一个应用程序来检索早于您建立管道的日期的记录,并将它们写入 Kinesis数据流。

Amazon Kinesis Data Streams | Service API Reference | PutRecords

【讨论】:

  • 谢谢!我不知道 PutRecords 功能,我可以编写一个简单的脚本来做到这一点。
猜你喜欢
  • 2019-01-01
  • 2017-07-20
  • 2017-05-24
  • 2019-09-29
  • 2020-12-29
  • 2020-10-02
  • 2020-10-01
  • 1970-01-01
  • 2016-12-05
相关资源
最近更新 更多