2017-07-20 3 views
0

Wie schreibt man DynamoDB table1 in table2?Wie schreibt man DynamoDB table1 täglich in table2?

Table1: id,name,mobile,address,createdDate. 

Table2: id,name,mobile,address,createdDate. 

Condition: only Yesterday added records are write to "table2". And also remove that Yesterday data from "table1". 

wie diesen Prozess auf täglicher Basis zu tun.

+0

Könnten Sie bitte bearbeiten Sie Ihre Frage und fügen Sie Details über * WARUM * Sie möchten dies tun? Die passende Antwort kann basierend auf Ihrem Grund variieren. Können wir auch annehmen, dass Sie sich auf das Datum im Feld createdDate beziehen, wenn Sie * Yesterday * sagen? Wenn dies nicht der Fall ist, wie können die Daten von gestern identifiziert werden? –

Antwort

0

Sie müssten dazu Ihren eigenen Code schreiben, aber Sie könnten ihn als AWS Lambda-Funktion implementieren, ausgelöst durch einen Amazon CloudWatch Events-Zeitplan.

See: Tutorial: Schedule Lambda Functions Using CloudWatch Events

Alternativ anstatt die Daten zu kopieren einmal pro Tag, könnten Sie erstellen DynamoDB-Stream, der eine AWS Lambda-Funktion löst, die die Daten sofort einsetzen können. Wenn Ihr Ziel ist, eine Tabelle pro Tag zu haben, könnten Sie die heutige Tabelle während des Tages befüllen und einfach auf sie am Ende des Tages umstellen, ohne dass Sie irgendwelche Daten kopieren müssen - weil es schon da ist!

See: DynamoDB Streams and AWS Lambda Triggers

+0

Ich brauche heute Daten für den regulären aktiven Prozess. Rest der Daten nicht nötig. aber einige historische Analysen benötigen die alten Daten. dann, wie man alle anderen dynamodb Datenexport nach s3 verschiebt. und wie man das basierend auf einer bestimmten datierten Datei wiederherstellt. – samson

+0

Fragen Sie, wie Sie die Daten in Amazon S3 verschieben? Wenn ja, bitte eine neue Frage starten. –

+0

natürlich neue Frage, aber ich brauche etwas Klärung, Lambda-Trigger starten, um eine Funktion, die alle Yesterday Daten lesen und schreiben in Tabelle2. Gestern Daten zählen wie 2 Million + dann, wie man diesen Prozess behandelt. – samson

0

Hier ist ein möglicher Ansatz:

1) Aktivieren Sie TTL auf Tabelle 1 und stellen Sie sicher, dass Gegenstände am nächsten Tag gelöscht werden (Sie können am nächsten Tag Datum in ttl Datumsfeld setzen auf Schaffung).

2) Aktivieren Sie den DynamoDB-Stream in Tabelle 1 und stellen Sie sicher, dass er das alte Image enthält.

3) verwenden AWS Lambda, die ttl Ereignisse verarbeitet (überprüfen DynamoDB ttl Dokumentation zu sehen, wie ttl Ereignis identifiziert werden können) und schreibt alte Bilddaten in Tabelle 2.

Diese Lösung sollte fehlertolerant und skalierbar sein, wie Lambdas werden bei fehlgeschlagenen Operationen erneut versuchen. Ein Nachteil dieser Lösung ist, dass ttl keine sofortige Ausführung garantiert. In seltenen Fällen kann es bis zu 48 Stunden dauern, bis ein Artikel gelöscht wird. In der Regel ist dies jedoch viel schneller.

Verwandte Themen