Amazon web services DynamoDB API BatchWriteItem是否总是按照RequestItems中PutRequests的顺序写入表?
澄清的简单示例:下面的JSON使用BatchWriteItem发送到DynamoDB。是否总是按照完全相同的顺序处理?我必须先将“消息一”写入表中,然后再将“消息二”写入表中,再将“消息三”写入表中Amazon web services DynamoDB API BatchWriteItem是否总是按照RequestItems中PutRequests的顺序写入表?,amazon-web-services,amazon-dynamodb,Amazon Web Services,Amazon Dynamodb,澄清的简单示例:下面的JSON使用BatchWriteItem发送到DynamoDB。是否总是按照完全相同的顺序处理?我必须先将“消息一”写入表中,然后再将“消息二”写入表中,再将“消息三”写入表中 我在DynamoDB文档中没有看到任何东西表明在使用BatchWriteItem时有订购保证。然而,文件确实说 BatchWriteItem中指定的单个PutItem和DeleteItem操作是原子操作;然而,BatchWriteItem作为一个整体并非如此。如果任何请求的操作因超出表的已配置吞吐量
我在DynamoDB文档中没有看到任何东西表明在使用
BatchWriteItem
时有订购保证。然而,文件确实说
BatchWriteItem中指定的单个PutItem和DeleteItem操作是原子操作;然而,BatchWriteItem作为一个整体并非如此。如果任何请求的操作因超出表的已配置吞吐量或发生内部处理故障而失败,则会在UnprocessedItems响应参数中返回失败的操作。您可以调查并选择重新发送请求。通常,您会在循环中调用BatchWriteItem。每次迭代都会检查未处理的项,并提交一个新的BatchWriteItem请求和这些未处理的项,直到处理完所有项为止
一些请求可能最终成为未处理的
,这一想法本身就表明顺序没有保证
我不知道如何处理BatchWriteItem
排序,但我想指出的是,如果您的用例无法处理这种不确定性
如果顺序很重要,您可以按顺序发出多个请求
如果您能够分享更多关于您的用例的详细信息,我相信社区可以提出直接解决您试图解决的问题的建议。您为什么关心订单?这是必需的。
"RequestItems": {
"TABLE": [
{
"PutRequest": {
"Item": {
"Message": {
"S": "Message one."
},
"ID": {
"S": "S103"
}
}
}
},
{
"PutRequest": {
"Item": {
"Message": {
"S": "Message two."
},
"ID": {
"S": "S104"
}
}
}
},
{
"PutRequest": {
"Item": {
"Message": {
"S": "Message three."
},
"ID": {
"S": "S105"
}
}
}
},
]
}