gpt4 book ai didi

java删除dynamodb中的所有项目

转载 作者:行者123 更新时间:2023-11-30 02:00:57 25 4
gpt4 key购买 nike

我试图删除 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 是我的主排序键

最佳答案

PREAMBLE:虽然扫描操作的成本很高,但我需要这个答案来初始化测试场景(低容量)的表。该表正在由另一个进程创建,我需要该表上的测试场景,因此我无法删除并重新创建该表。

答案:给定:

  • DynamoDbClient 数据库

  • 静态字符串 TABLE_NAME

  • 静态字符串 HASH_KEY

  • 静态字符串SORT_KEY

     ScanIterable scanIterable = db.scanPaginator(ScanRequest.builder()
    .tableName(TABLE_NAME)
    .build());
    for(ScanResponse scanResponse:scanIterable){
    for( Map<String, AttributeValue> item: scanResponse.items()){
    Map<String,AttributeValue> deleteKey = new HashMap<>();
    deleteKey.put(HASH_KEY,item.get(HASH_KEY));
    deleteKey.put(SORT_KEY,item.get(SORT_KEY));
    db.deleteItem(DeleteItemRequest.builder()
    .tableName(TRANSACTION_TABLE_NAME)
    .key(deleteKey).build());
    }
    }

关于java删除dynamodb中的所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52854622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com