java - java删除dynamodb中的所有项目
问题描述
我试图在 dynamodb 中删除我的表中的所有项目,但它不起作用。
try {
ScanRequest scanRequest = new ScanRequest().withTableName(table);
ScanResult scanResult = null;
do {
if (Check.nonNull(scanResult)) {
scanRequest.setExclusiveStartKey(scanResult.getLastEvaluatedKey());
}
scanResult = client.scan(scanRequest);
scanResult.getItems().forEach((Item) -> {
String n1 = Item.get("n1").toString();
String n2 = tem.get("n2").toString();
DeleteItemSpec spec = new DeleteItemSpec().withPrimaryKey("n1", n1, "n2", n2);
dynamodb.getTable(table).deleteItem(spec);
});
} while (Check.nonNull(scanResult.getLastEvaluatedKey()));
} catch (Exception e) {
throw new BadRequestException(e);
}
n1 是我的主分区键
n2 是我的主排序键
解决方案
从 DynamoDB 中删除所有项目的最佳方法是删除表并重新创建它。
否则,将使用大量读取容量和写入容量单位,这将花费您。
删除并重新创建表是最好的方法。
推荐阅读
- javascript - Three.js Webgl 纹理错误 - 2 的幂 - 没有视频
- javascript - webrtc 对等连接:无法创建答案
- bash - 使用 shell 命令计算文件中文本的出现次数
- python - Django bulk_create 创建视图
- scala - 范畴论中的“过滤器”是什么样的态射?
- node.js - nodejs azure createBlockBlobFromLocalFile 超时
- function - 使用 Iso_Fortran_Env 设置函数的 Kind 值
- angular - Materializecss 1.0.0 + 角
- mysql - 两个日期之间的mysql选择有奇怪的行为
- python - 如何使用 while 收集结果值?