我正在研究 DynamoDb 流与 DynamoDb Kinesis Data Streams。
Kinesis 数据流记录的显示顺序可能与项目发生更改时的顺序不同。相同的项目通知也可能在流中出现多次。您可以检查 ApproximateCreationDateTime 属性来识别项目修改发生的顺序,并识别重复记录。
我想知道它是否至少保证这两个
目前我正在将事件从 DynamoDb 流复制到 kinesis,我的解决方案没有提供比上述更好的保证。
PutRecords
API 放入流中,而 kinesis 不提供任何订单保证:
Kinesis Data Streams 尝试处理每个 PutRecords 请求中的所有记录。单个记录失败不会停止后续记录的处理。因此,PutRecords 不保证记录的顺序。如果您需要按照写入流的顺序读取记录,请使用 PutRecord 而不是 PutRecords,并写入同一个分片。
因此,虽然相同的项目将进入相同的分片,但不能保证其顺序。
相比之下,DynamoDB Streams 保证项目级别更改的顺序。