Amazon dynamodb 如何每天将DynamoDB表1写入表2?

Amazon dynamodb 如何每天将DynamoDB表1写入表2?,amazon-dynamodb,Amazon Dynamodb,如何将DynamoDB表1写入表2 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". 如何每天执行此过程。您需要编写自己的代码来执行此操作,

如何将DynamoDB表1写入表2

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".

如何每天执行此过程。

您需要编写自己的代码来执行此操作,但您可以将其作为AWS Lambda函数实现,由亚马逊CloudWatch事件时间表触发

见:

或者,您可以创建一个触发AWS Lambda函数的DynamoDB流,该函数可以立即插入数据,而不是每天复制一次数据。如果您的目标是每天有一个表,您可以在一天中填充今天的表,并在一天结束时简单地切换到它,而不必复制任何数据,因为它已经存在了


请参阅:

以下是一种可能的方法:

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

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

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


此解决方案应具有容错性和可扩展性,因为lambdas将在任何失败的操作上重试。这种解决方案的一个缺点是ttl不能保证立即执行。在某些罕见的情况下,删除项目可能需要48小时,但通常速度要快得多。

请编辑您的问题并添加有关为什么要这样做的详细信息,好吗?根据你的理由,合适的答案可能会有所不同。另外,我们是否可以假设,当您说“昨天”时,您指的是
createdDate
字段中的日期?如果不是这样的话,如何识别昨天的数据?我需要今天的数据用于常规活动流程。其余的数据不需要。但一些历史分析需要旧数据。然后如何将所有其他dynamodb数据导出到s3。以及如何根据特定的日期文件恢复数据。您是否在询问如何将数据移动到AmazonS3?如果是这样,请开始一个新问题。当然是新问题,但我需要一些澄清,lambda触发器开始执行一个函数,读取所有昨天的数据并写入表2中。昨天的数据计数为200万以上,那么如何处理这个过程。它可以触发AWS Lambda函数,但您将负责在函数中编写代码。如果您的代码有问题,请发布您的代码并告诉我们您遇到的错误或问题。另外,请注意Lambda函数最多只能运行5分钟,因此您可能无法将其作为每日批处理。您可以使用dynamodbstreams方法(如上所述),或者在其他地方运行一些代码(例如在amazonec2实例上)。