我使用DynamoDB DocumentClient在多个表上使用班级: AWS.DynamoDB.DocumentClient删除项。
问题是,当我尝试使用promised.all()删除多个表时,它没有删除该项,但没有从AWS返回任何异常。我在想是因为我没有兑现承诺吗?
另一件事是,在DynamoDB页面上,它提到了写容量如下:
一个写入容量单元表示高达1KB大小的项每秒写一次。如果您需要编写大于1KB的项,DynamoDB将需要消耗额外的写入容量单位。所需写入容量单元的总数取决于项目大小。
如果我的每个项目是0.4KB,我想删除1000项,它将是400 KB,那么我应该设置写容量单位为400或1000?(如果我不推迟请求)。
return Promise.all([deleteItemOnTable(table1), deleteItemOnTable(table2)]);
var documentClient = new AWS.DynamoDB.DocumentClient();
function deleteItemOnTable(tablePramas, dataToBeDeleted){
var params = {
TableName : 'TableName',
Key: {
HashKey: 'hashkey',
NumberRangeKey: 1
}
};
dataToBeDeleted.forEach(item=>
var chain = Promise.resolve();
chain = chain.
then(()=>{
documentClient.delete(params, function(err, data) {
if (err) console.log(err);
else console.log(data);
});
}).then(() => delay(10));
}
);
发布于 2018-05-16 07:28:50
听起来你的查询参数对你的数据没有任何影响。你的数据是什么样子的?
对于问题的写作能力部分,这取决于您希望写的速度。在1000秒内,公式是:
1KB (0.4KB rounded up) x 1000 writes per second = 1000 write capacity units如果您要在更长的时间内(例如每秒100次)将写入内容,则公式如下:
1KB (0.4KB rounded up) x 100 writes per second = 100 write capacity unitshttps://stackoverflow.com/questions/50347656
复制相似问题