1

ich sah, dass ähnliche Fragen bereits vorhanden sind:Sicherung nur neue Datensätze von DynamoDB bis S3 und sie in RedShift laden

Backup AWS Dynamodb to S3

Copying only new records from AWS DynamoDB to AWS Redshift

Loading data from Amazon dynamoDB to redshift

Leider veraltet meisten von ihnen sind (da Amazon neue Dienste eingeführt hat) und/oder unterschiedliche Antworten haben.

In meinem Fall habe ich zwei Datenbanken (RedShift und DynamoDB) und ich muss:

  • Halten RedShift Datenbank up-to-date
  • Speicher-Datenbank-Backup auf S3

zu tun, dass ich diesen Ansatz verwenden möchte:

  1. Backup nur neue/geänderte Datensätze von Dynam oDB nach S3 am Ende des Tages. (1 Datei pro Tag)
  2. aktualisieren RedShift Datenbank-Datei von S3

So ist meine Frage, was der effizienteste Weg ist, das zu tun?

Ich lese this tutorial, aber ich bin mir nicht sicher, dass AWS-Datenpipeline konfiguriert werden konnte, um nur neue Datensätze von DynamoDB zu "fangen". Wenn das nicht möglich ist, ist das Scannen der gesamten Datenbank nicht möglich.

Vielen Dank im Voraus!

Antwort

3

können Sie Amazon Lambda mit DynamoDB Strom verwenden (documentation)

können Sie Ihre Lambda-Funktion konfigurieren, um aktualisierte Datensätze zu erhalten (von DynamoDB Stream) und dann Rotverschiebung aktualisieren db

+0

In diesem Beispiel sie Lambda-Funktion gebunden sind, unter Verwendung von zu DynamoDB Stream. Lambda wird bei jeder DynamoDB-Änderung (Einfügen/Ändern) aufgerufen. Auf diese Weise sollte ich die ganze "Log" -Datei von S3 lesen und sie dann aktualisieren. Vielleicht muss ich festlegen, dass Lambda am Ende des Tages nur einmal ausgeführt wird. – bpavlov

+0

Ich verstehe nicht die Verwendung von s3 Log-Datei. Mit Lambda brauchen Sie es nicht –

+0

Ich benutze s3-Datei als Datenbank-Backup. Ein weiterer Grund ist: "COPY lädt große Datenmengen viel effizienter als mit INSERT-Anweisungen und speichert die Daten auch effektiver." Auch wenn ich einige Daten wiederherstellen muss ich nicht wieder von DynamoDb lesen – bpavlov