假设我有以下条目的DynamoDB表:
A B C //列
a1 b1 c1 //条目1
a1 b2 c2 //条目2
A是键(分区键),B是排序键(唯一),C是属性。
我想确保DynamoDB流可以保证B的订购处理。
如果按此顺序进行更改 - (注意C更新3次)
{a1,b1,c1} => {a1,b1,c2} => {a1,b1,c3}
DynamoDB Stream可以保证订购吗? 看起来保证对相同密钥的更新进行有序处理。对于此示例,是否将保留对a1(键)的任何更新的顺序?
答案 0 :(得分:3)
是的,保留了排序,因为在DynamoDB中,项目的所有更改都是使用项目键(无论是仅分区还是复合)进行的,而DynamoDB Streams只保证一次,按顺序将所有突变传递给每个项目。
来自the docs:
每个流记录在流中只出现一次。
对于在DynamoDB表中修改的每个项目,流 记录的显示顺序与实际修改的顺序相同 项目