检索DynamoDB表中的所有数据并随后清除表的最佳方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检索DynamoDB表中的所有数据并随后清除表的最佳方法相关的知识,希望对你有一定的参考价值。

我有兴趣接收位于DynamoDB表中的所有数据,然后最有效地清除表格。

我已经看到如何删除一个项目并在concurrency - DynamoDB - how to retrieve and delete (pop) an item?中同时检索它。我还在database - What is the recommended way to delete a large number of items from DynamoDB?看到了批量删除。

理想情况下,我想同时清除表并检索数据。有一个更好的方法吗?

答案

如果您为表的dynamo db流订阅lambda函数,则可以在删除项目时对其进行处理(从技术上讲,它将在项目删除后立即显示在流中)。

另一答案

您可以从表中检索所有行,将其放入列表中,然后将列表发送到dynamodbs delete方法。这对我有用:

 public async Task DeleteAllReadModelEntitiesInTable()
{
    List<ReadModelEntity> readModels;

    var conditions = new List<ScanCondition>();
    readModels = await _context.ScanAsync<ReadModelEntity>(conditions).GetRemainingAsync();

    var batchWork = _context.CreateBatchWrite<ReadModelEntity>();
    batchWork.AddDeleteItems(readModels);
    await batchWork.ExecuteAsync();
}

以上是关于检索DynamoDB表中的所有数据并随后清除表的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

SQL SERVER 怎样清空表的数据

使用 DynamoDB 流 捕获表活动

DynamoDB 流 和 AWS Lambda 触发器

推荐阅读整个表的方法(Lambda,DynamoDB / S3)

数据库怎么清空一个表中所有数据

如何在mysql中定时清除所有库中指定的表中的数据,而不用每个库都写一遍定时任务,求大神指点!!!