AWS RDS в AWS ES

Требование. При вставке/обновлении определенной таблицы создайте поток данных и передайте его в эластичный поиск.

Мысль AWS RDS(MariaDb) ----- вставить/обновить, чтобы сказать пользовательскую таблицу ---> Поток AWS Kinesis -- с использованием AWS Lambda --> AWS ES

Вопрос Как создать поток Kinesis при вставке/обновлении определенной таблицы? Могу ли я сделать это через AWS Lambda?


person JDev    schedule 27.09.2017    source источник
comment
Какую базу данных вы используете в RDS?   -  person Ashan    schedule 28.09.2017
comment
База данных @Ashan: mariadb   -  person JDev    schedule 28.09.2017


Ответы (1)


Это можно сделать, если вы используете Amazon Aurora.

Одним из последних обновлений в Amazon Aurora является поддержка вызова функции Lambda из хранимой процедуры.

Итак, чтобы реализовать ваше требование, вы можете создать триггер SQL, который вызывает хранимую процедуру SQL, которая затем вызывает функцию Lambda, которая отправляет эти данные в Elastic Search.

Ссылка: Вызов функции Lambda из кластера БД Amazon Aurora


Если вы используете не Aurora, а MySQL или MariaDB, я рекомендую переключиться, если эта функция действительно важна для вашего приложения.

Если вы используете базу данных, отличную от Aurora, MySQL или MariaDB, вам придется переосмыслить свое приложение, чтобы записывать данные параллельно как в RDS, так и в ElasticSearch. Я бы также рекомендовал следующие архитектурные шаблоны:

person Noel Llevares    schedule 28.09.2017
comment
Если вы использовали его или хорошо знаете SQL, я предлагаю добавить немного больше информации. Например, я понятия не имею, что или где находится mysql.lambda_async или что мне с ним делать. Сделать запрос к БД с CALL mysql.lambda_async ( ... ) для активации или при каждой записи? - person Solo; 28.09.2017
comment
@Solo, что, где и как использовать, все задокументировано по предоставленной ссылке. Процедура mysql.lambda_async – это встроенная хранимая процедура, которая асинхронно вызывает функцию Lambda. - person Michael - sqlbot; 28.09.2017