1

Anforderung: Beim Einfügen/Aktualisieren einer bestimmten Tabelle einen Datenstrom erstellen und diesen zur elastischen Suche verschieben.AWS RDS zu AWS ES

Thought AWS RDS (MariaDB) ----- insert/update Benutzertabelle sagen ---> AWS Kinesis Strom - AWS Lambda mit -> AWS ES

Frage Wie kann ich beim Einfügen/Aktualisieren einer bestimmten Tabelle einen Kinesis-Stream erstellen? Kann ich es über AWS Lambda tun?

+0

Was ist die Datenbank, die Sie in RDS verwenden? – Ashan

+0

@Ashan Datenbank: Mariadb – Suchit

Antwort

4

Sie können dies tun, wenn Sie Amazon Aurora verwenden.

Eines der letzten Updates in Amazon Aurora ist die Unterstützung zum Aufrufen einer Lambda-Funktion aus einer gespeicherten Prozedur.

Um Ihre Anforderung zu implementieren, können Sie einen SQL-Trigger erstellen, der eine gespeicherte SQL-Prozedur aufruft, die dann eine Lambda-Funktion aufruft, die diese Daten an Elastic Search sendet.

Referenz: Invoking a Lambda Function from an Amazon Aurora DB Cluster


Wenn Sie nicht Aurora verwenden, aber mit MySQL oder MariaDB, empfehle ich Umschalten, wenn diese Funktion für Ihre Anwendung wirklich wichtig ist.

Wenn Sie eine andere Datenbank als Aurora, MySQL oder MariaDB verwenden, müssen Sie Ihre Anwendung überdenken, um die Daten parallel zu RDS und ElasticSearch zu schreiben. Ich würde auch folgende Architekturmuster empfehlen:

+0

Wenn Sie es verwendet haben oder SQL gut kennen, schlage ich vor, ein wenig mehr Informationen hinzuzufügen. ZB ich habe keine Ahnung was oder wo ist mysql.lambda_async' oder was soll ich damit machen. Anfrage an db mit 'CALL mysql.lambda_async (...)' zu aktivieren oder bei jedem schreiben? – Solo

+1

@Solo was und wo und wie man es benutzt, sind alle unter dem angegebenen Link dokumentiert. * "Die' mysql.lambda_async'-Prozedur ist eine integrierte gespeicherte Prozedur, die asynchron eine Lambda-Funktion aufruft. "* –

+0

Ich benutze MariaDb, wie wird das funktionieren? – Suchit