Dynamo 数据库表更新

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

我的要求是更新 DynamoDB 中表中的分区键。为了更新分区键,应删除旧记录并添加具有更新分区键的新记录。 问题是我的表大小约为 400 MB,并且包含大约 200 万条记录。 如果我扫描整个表,那么它的效率不高并且会发生高内存消耗。 想要对表进行批量扫描。 我的歧义是,由于新元素不断添加(如上所述的分区键更新的 bcz),批处理调用 Mind 而不是 end 本身。 错误之处请指正。并提出解决方案。

我能够使用 dynamodb 在更新其他属性时提供的 LastEvaluatedKey 进行批量扫描。 想知道 LastEvaluatedKey 在更新分区键时是否有效(当添加新记录并删除旧记录时)。

amazon-web-services amazon-dynamodb dynamodb-queries amazon-dynamodb-index
1个回答
0
投票

我不确定您如何执行批处理作业,但最后评估的键是指向您在扫描中读取的最后一项的指针。即使该项目被删除,指针仍保留在该位置并在后续请求中继续向前读取。

您提到您继续写入 DynamoDB,其中这些写入没有您想要实现的正确分区键格式,那么您将必须不断启动扫描以不断获取那些需要更改的项目。

因此,如果您想要更新所有项目,即使有新项目进来,您也应该配置一个新表,您扫描的任何内容都会写入新表中。写入源表的任何新项目都将由 DynamoDB 流使用,并且您可以放置一个 Lambda 函数将其放入新表中。这意味着您只需扫描表格一次。

请记住 400MB 是一个非常小的表。如果您停止写入 1 分钟,您就可以不间断地进行转换。

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