2017-07-20 66 views
0

如何將DynamoDB table1寫入table2?如何將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

您能否編輯您的問題並添加詳細信息*爲什麼*您希望這樣做?根據你的理由,適當的答案可能會有所不同。另外,我們可以假設,當你說*昨天*時,你指的是'createdDate'字段中的日期?如果情況並非如此,昨天的數據如何確定? –

回答

0

您需要編寫自己的代碼才能執行此操作,但是您可以將其作爲AWS Lambda函數實施,由Amazon CloudWatch Events日程表觸發

參見:Tutorial: Schedule Lambda Functions Using CloudWatch Events

或者,而不是複製每天一次的數據,你可以創建一個DynamoDB流觸發一個AWS lambda函數,可以立即插入數據。如果你的目標是每天有一張桌子,你可以在當天填充當天的桌子,並在一天結束時簡單地切換到它,而不必複製任何數據 - 因爲它已經在那裏了!

參見:DynamoDB Streams and AWS Lambda Triggers

+0

我需要今天的常規活動過程的數據。其餘的數據不需要。但一些歷史分析需要過去的數據。那麼如何將所有其他dynamodb數據導出到s3。以及如何恢復基於特定日期的文件。 – samson

+0

您是否在問如何將數據移動到Amazon S3?如果是這樣,請開始一個新的問題。 –

+0

當然是個新問題,但我需要一些解釋,lambda觸發器開始執行一個讀取所有昨天數據並寫入table2的函數。昨天的數據計算如2百萬+那麼如何處理這個過程。 – samson

0

這是一個可行的方法:

1)開啓表1 TTL,確保項目的第二天刪除(你可以把第二天的日期轉換成TTL日期字段上創建)。

2)在表1上啓用DynamoDB流並確保它包含舊映像。

3)使用AWS拉姆達該處理TTL事件(檢查dynamodb TTL文檔,看看TTL事件如何被識別)和舊的圖像數據寫入表2

這個解決方案應該是容錯和可擴展性,如lambda將在任何失敗的操作中重試。此解決方案的一個缺點是ttl不保證立即執行。在一些極少數情況下,可能需要48小時才能刪除項目,但通常速度要快得多。

相關問題