2017-07-20 7 views
0

DynamoDBテーブル1をテーブル2に書き込む方法は?DynamoDB table1を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". 

このプロセスを毎日行う方法。

+0

質問を編集し、* WHY *の詳細を追加してください。適切な答えはあなたの理由に基づいて変わるかもしれません。また、* Yesterday *と言うとき、あなたは 'createdDate'フィールドの日付を参照していると仮定できますか?そうでない場合は、どのように昨日のデータを特定できますか? –

答えて

0

これを行うには独自のコードを記述する必要がありますが、AWSラムダ関数としてAmazon CloudWatch Eventsスケジュールをトリガとして実装できます。

参照:Tutorial: Schedule Lambda Functions Using CloudWatch Events

代わりに、むしろ1日1回のデータをコピーするよりも、あなたはすぐにデータを挿入することができAWSラムダ関数をトリガーDynamoDBのストリームを作成することができます。あなたの目標が1日に1つのテーブルを持つことになっている場合は、の間に今日のテーブルにを入力し、データをコピーすることなく、その日の終わりに切り替えることができます。

を参照してください:ここでDynamoDB Streams and AWS Lambda Triggers

+0

今日は定期的なアクティブなプロセスのためのデータが必要です。残りのデータは不要です。いくつかの履歴分析には旧式のデータが必要です。他のすべてのdynamodbデータのエクスポートをs3に移動する方法。特定の日付ファイルに基づいて復元する方法。 – samson

+0

Amazon S3にデータを移動する方法を尋ねていますか?もしそうなら、新しい質問を始めてください。 –

+0

もちろん新しい質問ですが、私はいくつかの明確化が必要です、すべての昨日のデータを読んでtable2に書き込む関数を実行するためのラムダトリガーの開始。昨日のデータ数は2百万回+このプロセスをどのように処理するかなどです。 – samson

0

は一つの可能​​なアプローチである:

1)(あなたは上のTTL日付フィールドに次の日の日付を置くことができる表1にTTLを有効にして、アイテムが次の日に削除されていることを確認創造)。

2)テーブル1のDynamoDBストリームを有効にし、古いイメージが含まれていることを確認します。

3)として、TTLイベント(TTLイベントを識別できる方法を確認するためにDynamoDBのTTLのマニュアルを参照してください)を処理し、このソリューションは、トレラントでスケーラブルな障害でなければなりません2.

テーブルに古い画像データを書き込むAWSのラムダを使用しますlambdasは失敗した操作で再試行します。このソリューションの1つの欠点は、ttlが即時実行を保証していないことです。まれに、アイテムを削除するのに最大48時間かかることがありますが、通常は非常に高速です。

関連する問題