我有两个DynamoDB表:Table_1和Table_2。我正在尝试弃用Table_1并将信息从Table_1复制到Table_2中,Table_1具有不同的GSI和不同的LSI。
Table_1属性包括:Id,state,isReused,empty,normal
表_2属性为:UserId,Status,isOld,normal
Id映射到UserId,状态映射到状态,法线映射到正常,空白从Table_2中删除,如果状态为“OLD”,则isOld设置为true。
从Table_1导出此数据的最佳方法是什么,对属性/数据进行转换,然后将信息重新加载到Table_2中?
目前,我可以使用AWS Data Pipeline将Table_1中的数据导入/导出到具有给定模板的Table_2,但这不会进行转换。我猜我需要使用EMR来进行转换。
我还使用DynamoDB流来保持表同步,但根据我的理解,DynamoDB流只传输流更新的信息,而不是表中已存在的信息。
答案 0 :(得分:4)
假设您只需要一次此数据移动,我可以考虑两个选项:
答案 1 :(得分:0)
您可以编写脚本来查询Table_1中的所有项目并使用Java进行转换,而不是使用Data Pipeline和编写EMR作业。在Java中进行转换后,如果条件不存在,则执行条件put [1]仅更新Table_2中的项目。这将确保在此回填期间在Table_1中所做的任何更改都将显示Table_2中的最新信息。
(http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html)