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

时间:2018-07-10 00:14:25

标签: amazon-web-services amazon-dynamodb

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

我已经看到了如何删除项目并在WebDriverIO docs中同时检索它。我还看到了concurrency - DynamoDB - how to retrieve and delete (pop) an item?中的批量删除。

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您可以从表中检索所有行,将其放在列表中,然后将该列表发送到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();
}