DynamoDB Streams - 流描述中的分片是否有顺序?

0

【以下的问题经过翻译处理】 我知道流中的项目是有序的。我的主要问题在于流描述中的分片是否有序。如果它们有序,我可以随时获取最新的分片并从那里处理记录;否则,我需要记录已处理的分片,以便在获取流描述的下一次迭代中仅获取新的分片 - 即,在当前分片关闭并且我必须退出用于该分片的getRecords循环之后。

进一步的背景:

我已经完成了一项KCL实现,但正在考虑进行更低级别的实现,因为那似乎更适合我们的特定需求。最终,我只需从表中获取最新记录(在所有服务节点之间广播)。话说回来,我的快速问题如下:从DescribeStreamResult.getShards()返回的分片列表是否有序?(我假设这遵循一般的描述流API,但尚未看到任何指示这个列表是否有序的内容。)

profile picture
专家
已提问 1 年前51 查看次数
1 回答
0

【以下的回答经过翻译处理】 DynamoDB Streams API与Kinesis Streams有一定相似之处(源自此处的文档https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.KCLAdapter.html)。此外,文档中也声明:使用Kinesis Adapter是从DynamoDB消费Streams的推荐方式。Kinesis的API文档https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DescribeStream.html(DescribeStream)中声明,无法保证按照时间顺序返回的shard是有序的。如果您希望按照时间顺序处理shard,请使用ParentShardId跟踪到最早的shard。DynamoDB的DescribeStream API包含parentSharedIdhttps://docs.aws.amazon.com/amazondynamodb/latest/APIReference/Welcome.html#DDB-Type-Shard-ParentShardId和SequenceNumberRange。

profile picture
专家
已回答 1 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则