Мне нужно индексировать данные из RDS (MySQL) и S3 (документы) в Elasticsearch для выполнения полнотекстового поиска.
Я отметил, что AWS Kinesis кажется идеальным для этого и может прослушивать как S3, так и MySQL, передавая отформатированные результаты в Elasticsearch.
Однако я не понимаю, как я могу использовать имеющиеся данные с помощью Kinesis.
Для RDS-to-Elasticsearch я видел альтернативу go-mysql-elasticsearch, который бы справился с этим для меня, но это все еще оставляет меня зацикленным с гигабайтами данных S3 для глотания.
Кто-нибудь решил эту проблему? Я предпочел бы как можно более простой настрой.
Спасибо
Что касается добавления метаданных в записи в ElasticSearch, вы, вероятно, думаете о том, что иногда называют "обогащением данных". Здесь есть очень подробное сообщение в блоге, в котором рассказывается о том, как глотать и обогащать данные, используя как статические, так и динамические справочные данные. Используя AWS Lambda для обогащения ваших данных, вы можете запускать динамические запросы с источниками данных и модифицировать свои записи, прежде чем они попадут в ElasticSearch через Kinesis Firehose.
API данных Kinesis Data Streams API поддерживает пакетный API-интерфейс PutRecords
. Вы можете записать до 500 записей в поток данных Kinesis с помощью одного вызова API. Объявление об этом здесь.
После того, как вы настроили конвейер для приема и обогащения для новых записей, вы можете написать приложение, которое извлекает записи, старше даты, когда вы создали конвейер, и записывает их в поток данных Kinesis.
Потоки данных Amazon Kinesis | Ссылка на API-интерфейс службы | PutRecords