1

Condition: Lors de l'insertion/de la mise à jour d'une table spécifique, créez un flux de données et insérez-le dans la recherche élastique.AWS RDS vers AWS ES

Pensée AWS RDS (MariaDB) ----- insertion/mise à jour de dire table utilisateur ---> flux AWS Kinesis - en utilisant AWS Lambda -> ES AWS

Question Comment puis-je créer un flux de kinésis lors de l'insertion/mise à jour d'une table spécifique? Puis-je le faire via AWS Lambda?

+0

Quelle est la base de données que vous utilisez dans RDS? – Ashan

+0

@Ashan Base de données: mariadb – Suchit

Répondre

4

Vous pouvez le faire si vous utilisez Amazon Aurora.

L'une des mises à jour récentes d'Amazon Aurora est la prise en charge de l'appel d'une fonction Lambda à partir d'une procédure stockée. Ainsi, pour implémenter votre condition, vous pouvez créer un déclencheur SQL qui appelle une procédure stockée SQL qui appelle ensuite une fonction Lambda qui envoie ces données à Elastic Search.

Référence: Invoking a Lambda Function from an Amazon Aurora DB Cluster


Si vous ne l'utilisez Aurora mais en utilisant MySQL ou MariaDB, je vous recommande de commutation si cette fonction est vraiment important pour votre application.

Si vous utilisez une base de données autre qu'Aurora, MySQL ou MariaDB, vous devez repenser votre application pour écrire les données en parallèle dans RDS et ElasticSearch. Je recommande aussi les modèles d'architecture suivants:

+0

Si vous l'avez utilisé ou connaissez bien SQL, je suggère d'ajouter un peu plus d'informations. Par exemple, je ne sais pas quoi ou où est mysql.lambda_async ou que dois-je faire avec. Faire une requête à db avec 'CALL mysql.lambda_async (...)' pour activer ou sur chaque écriture? – Solo

+1

@Solo quoi et où et comment l'utiliser sont tous documentés sur le lien fourni. * "La procédure' mysql.lambda_async' est une procédure stockée intégrée qui appelle une fonction Lambda de manière asynchrone. "* –

+0

J'utilise MariaDb, comment cela fonctionnera-t-il? – Suchit