RDS MySQL、Kinesis Firehose 和 Elasticsearch,初始数据加载?

RDS MySQL, Kinesis Firehose, and Elasticsearch, initial data load?

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

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

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

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

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

谢谢

数据丰富/元数据

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

批量导入

Kinesis Data Streams API 支持名为 PutRecords 的批量摄取 API。您可以通过一次 API 调用将最多 500 条记录提取到您的 Kinesis 数据流中。关于此事的公告是over here

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

Amazon Kinesis Data Streams | Service API Reference | PutRecords