0

Ich versuche, ElasticSearch-Importprozess von DynamoDB-Tabelle einzurichten. Ich habe bereits AWS Lambda erstellt und DynamoDB Stream mit Trigger aktiviert, der für jeden hinzugefügten/aktualisierten Datensatz mein Lambda aufruft. Jetzt möchte ich eine initiale Seed-Operation ausführen (alle Datensätze, die sich derzeit in meiner DynamoDB-Tabelle befinden, nach ElasticSearch importieren). Wie mache ich das? Gibt es eine Möglichkeit, alle Datensätze in einer Tabelle "neu zu verarbeiten" und zum Stream hinzuzufügen (damit sie von meinem Lambda verarbeitet werden können)? Oder ist es besser, eine separate Funktion zu schreiben, die alle Daten manuell aus der Tabelle liest und an ElasticSearch sendet - also grundsätzlich zwei Lambdas: eines für die initiale Datenmigration (nur einmal ausgeführt und manuell von mir ausgelöst), und ein anderes für Synchronisierung neuer Datensätze (ausgelöst durch DynamoDB-Stream-Ereignisse)?DynamoDB Stream-Trigger-Aufruf für alle Datensätze

Vielen Dank für die Hilfe :)

Antwort

1

Je nachdem, wie groß Ihre Datenmenge ist es nicht möglich sein wird Ihre Datenbank in Lambda auf Saatgut, da es ein max Timeout von 300 seconds ist.

Sie können eine EC2-Instanz hochfahren und das SDK verwenden, um eine DynamoDB scan operation- und Batch-Schreiboperation für Ihre Elasticsearch-Instanz auszuführen.

Sie können auch Amazon EMR verwenden, um einen Map Reduce Job zu export to S3 durchzuführen und von dort alle Ihre Daten zu verarbeiten.

Verwandte Themen