Amazon web services 如何从Amazon';s迪纳摩db?

Amazon web services 如何从Amazon';s迪纳摩db?,amazon-web-services,amazon-dynamodb,Amazon Web Services,Amazon Dynamodb,就像备份dynamo db的所有表一样,我还希望在测试后清除测试环境中的所有表,而不删除表。 我们使用备份服务的方式不希望表模式的模式结构或java对象如下所示: Map exclusiveStartKey=null; 做{ //让速率限制器等待我们所需的吞吐量“充电” 获取(许可消费); ScanSpec ScanSpec=新的ScanSpec()。带有ReturnConsumedCapacity(ReturnConsumedCapacity.TOTAL) .具有最大结果大小(25); if(

就像备份dynamo db的所有表一样,我还希望在测试后清除测试环境中的所有表,而不删除表。 我们使用备份服务的方式不希望表模式的模式结构或java对象如下所示:

Map exclusiveStartKey=null;
做{
//让速率限制器等待我们所需的吞吐量“充电”
获取(许可消费);
ScanSpec ScanSpec=新的ScanSpec()。带有ReturnConsumedCapacity(ReturnConsumedCapacity.TOTAL)
.具有最大结果大小(25);
if(ExclusiveStateKey!=null){
KeyAttribute haskKey=GetExclusiveStartAshKey(exclusiveStartKey,keySchema);
KeyAttribute rangeKey=getExclusiveStartRangeKey(exclusiveStartKey,keySchema);
if(rangeKey!=null){
带有排他性ESTARTKEY(haskKey,rangeKey)的扫描规范;
}否则{
带有排他性ESTARTKEY(haskKey)的扫描规范;
}
}
Table Table=dynamoDBInstance.getTable(tableName);
ItemCollection响应=table.scan(scanSpec);
StringBuffer数据=新的StringBuffer();
迭代器迭代器=response.Iterator();
while(iterator.hasNext()){
Item=iterator.next();
data.append(item.toJSON());
数据。追加(“\n”);
}
debug(“从表中读取的数据:{}”,Data.toString());
if(response.getLastLowLevelResult()!=null){
exclusiveStartKey=response.GetLastLowLevel().getScanResult().getLastEvaluatedKey();
}否则{
exclusiveStartKey=null;
}
//考虑到我们消耗的剩余吞吐量,
//现在我们知道了扫描请求的成本
if(response.getTotalConsumedCapacity()!=null){
double consumedCapacity=response.getTotalConsumedCapacity().getCapacityUnits();
if(logger.isDebugEnabled()){
logger.debug(“消耗的容量:“+consumedCapacity”);
}
permitsToConsume=(int)(消费能力-1.0);

如果(permitsToConsume您可以对每个条目执行
扫描
,然后调用
删除项
,但只删除表并重新创建它们要容易得多。您好@mkobit,如果我们重新创建表,那么表的数量会增加,这将增加我们的成本。我之前应该说过这更容易、更高效、更经济删除表而不是删除每个项目。请参阅我的。另一种可能性(因为您提到测试)可能是利用。谢谢@mkobit,现在我得到了一个要点,使用相同的表模式,我们可以在删除后重新创建它。您的链接有帮助。这里已经有了@mkobit对这个问题的答案