最佳方法是检索DynamoDB表中的所有数据,然后清空表格。

11 浏览
0 Comments

最佳方法是检索DynamoDB表中的所有数据,然后清空表格。

我有兴趣接收我DynamoDB表中的所有数据,并且以最高效的方式清除表格。我已经看到了如何在并发 - DynamoDB - 如何检索和删除(弹出)一个项目?中同时删除和检索项目。我还在数据库 - 从DynamoDB中删除大量项目的推荐方法是什么?中看到了批量删除的方法。理想情况下,我想同时清除表格并检索数据。有更好的方法吗?

0
0 Comments

原因:问题的出现是因为需要从DynamoDB表中检索并清空所有数据。

解决方法:下面是解决该问题的最佳方法:

public async Task DeleteAllReadModelEntitiesInTable()
{
    List readModels;
    var conditions = new List();
    readModels = await _context.ScanAsync(conditions).GetRemainingAsync();
    var batchWork = _context.CreateBatchWrite();
    batchWork.AddDeleteItems(readModels);
    await batchWork.ExecuteAsync();
}

以上代码会从DynamoDB表中检索所有的行,并将其存储在一个列表中,然后将该列表发送给DynamoDB的删除方法。这种方法通过使用`ScanAsync`方法来检索所有行,并使用`GetRemainingAsync`方法将结果存储在`readModels`列表中。然后,使用`CreateBatchWrite`方法创建一个批量写操作,并使用`AddDeleteItems`方法将`readModels`列表中的数据添加到批量写操作中。最后,使用`ExecuteAsync`方法执行批量写操作,从而将所有数据从DynamoDB表中删除。

这种方法可以确保从DynamoDB表中检索并清空所有数据。

0
0 Comments

使用lambda函数订阅dynamo db流可以在表中删除项时处理这些项(从技术上讲,删除项后不久就会在流中显示出来)。

原因:需要检索和清除DynamoDB表中的所有数据。

解决方法:订阅lambda函数到dynamo db流,以便在表中的项被删除时进行处理。

0