如何在不影响数据的情况下删除DynamoDb表中的范围键列?

问题描述 投票:0回答:1

我需要删除现有Dynamodb表中的range-key,而不会影响数据。

amazon-web-services amazon-dynamodb data-migration
1个回答
0
投票

您将无法在现有表上执行此操作。您需要将数据迁移到以您希望的方式配置的新表中。

如果数据迁移可以离线完成,您只需要将Scan原始表中的所有数据和PutItem放入新表中。

Protip:如果你有一张大桌子,你可以让多个工人Scan并行一张桌子。你只需要为每个工人分配一个Segment。确保您的解决方案足够强大,可以通过启动新工作人员并将其重新分配给相同的Segment号码来处理工作人员。

进行实时数据迁移也不算太糟糕。您需要在原始表上创建一个DynamoDB Stream,并附加一个Lambda,它实际上将更改重放到新表上。基本策略是删除一个项目,在新表上调用DeleteItem,当插入或更新项目时,在新表上调用PutItemNEW_IMAGE。这将捕获任何实时活动。设置完成后,您需要以与离线情况相同的方式复制数据。

无论你做什么,你都会“影响”数据。删除范围键将从根本上改变数据的组织方式。请记住,这也意味着您对数据有不同的唯一性约束。

© www.soinside.com 2019 - 2024. All rights reserved.