ich sah, dass ähnliche Fragen bereits vorhanden sind:Sicherung nur neue Datensätze von DynamoDB bis S3 und sie in RedShift laden
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:
- Backup nur neue/geänderte Datensätze von Dynam oDB nach S3 am Ende des Tages. (1 Datei pro Tag)
- 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!
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
Ich verstehe nicht die Verwendung von s3 Log-Datei. Mit Lambda brauchen Sie es nicht –
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