如何每天将DynamoDB table1写入table2?

时间:2017-07-20 06:08:15

标签: amazon-dynamodb

如何将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".

如何每天进行此过程。

2 个答案:

答案 0 :(得分:0)

您需要编写自己的代码来执行此操作,但您可以将其实现为AWS Lambda函数,由 Amazon CloudWatch Events计划触发。

请参阅:Tutorial: Schedule Lambda Functions Using CloudWatch Events

或者,您可以创建一个 DynamoDB Stream来触发可以立即插入数据的AWS Lambda函数,而不是每天复制一次数据。如果你的目标是每天有一张桌子,你可以在白天填充今天的桌子,并在一天结束时简单地切换到它,而不必复制任何数据 - 因为它是已经在那里了!

请参阅:DynamoDB Streams and AWS Lambda Triggers

答案 1 :(得分:0)

这是一种可能的方法:

1)在表1上启用TTL并确保第二天删除项目(您可以在创建时将第二天日期放入ttl日期字段)。

2)在表1上启用DynamoDB流并确保其包含旧映像。

3)使用处理ttl事件的AWS lambda(检查dynamodb ttl文档以了解如何识别ttl事件)并将旧图像数据写入表2。

此解决方案应具有容错性和可伸缩性,因为lambdas将在任何失败的操作上重试。该解决方案的一个缺点是ttl不保证立即执行。在极少数情况下,项目可能需要48小时才能删除,但通常会更快。