相关疑难解决方法(0)

从DynamoDB中删除大量项目的推荐方法是什么?

我正在DynamoDB中编写一个简单的日志记录服务.

我有一个日志表,由user_id哈希和时间戳(Unix epoch int)范围键入.

当服务的用户终止其帐户时,我需要删除表中的所有项目,而不管范围值如何.

这种操作的推荐方法是什么(请记住可能有数百万项要删除)?

据我所知,我的选择是:

答:执行扫描操作,在每个返回的项目上调用删除,直到没有剩余项目

B:执行BatchGet操作,再次对每个项目调用delete,直到没有剩下

这些对我来说都很糟糕,因为它们需要很长时间.

我理想的做法是调用LogTable.DeleteItem(user_id) - 不提供范围,并让它为我删除所有内容.

database cloud amazon-web-services nosql amazon-dynamodb

88
推荐指数
4
解决办法
10万
查看次数

通过数据管道截断 DynamoDb 或重写数据

可以通过数据管道转储 DynamoDb,也可以在 DynamoDb 中导入数据。导入进展顺利,但数据一直附加到 DynamoDb 中已经存在的数据。

现在我找到了扫描 DynamoDb 并一个一个或通过 Batch 删除项目的工作示例。但无论如何,对于大量数据来说,这不是一个好的变体。

也可以完全删除表并创建它。但是随着该变体索引将丢失。

因此,最好的方法是通过数据管道导入或以某种方式截断来覆盖 DynamoDb 数据。有可能吗?如果是的话,怎么可能?

truncate amazon-dynamodb amazon-data-pipeline data-pipeline

7
推荐指数
1
解决办法
8782
查看次数