我在这里有几个相关的问题。
分片可能会分裂以响应其父表上的高级写入活动,以便应用程序可以并行处理来自多个分片的记录。
我的理解是当一个分片分成两个子分片时,DynamoDB会停止写入父分片并开始以循环方式写入两个子分片。在这种情况下,我如何建立记录的时间顺序?我是否必须通过应用程序层中的记录序列号读取子分片和排序记录?如果第二个孩子在某个时刻分成两个孙子碎片怎么办?在获得记录之前,我现在是否必须阅读子孙分片?
由于分片具有谱系(父级和子级),因此应用程序必须始终在处理子分片之前处理父级分片。
如果您查看文档中提供的Low-Level DynamoDB Streams API example,在 //获取流中的分片评论中,您会注意到代码只是获取所有分片对于给定的流,然后遍历分片列表而不会打扰父子关系。
这是否意味着如果我想按时间顺序获取记录列表,我必须从给定流中读取 ALL 记录,然后按应用程序层中的记录序列号对它们进行排序?
更新:
当我考虑处理过去24小时的流记录时,上述问题引起了我的兴趣。但是,为什么人们想要首先处理过去24小时的流数据呢?
我认为流是为实时表变更处理而构建的。并且通过触发Lambda函数实时处理流记录更有意义。
在我脑海中记录过去24小时流记录的唯一用例是某种流记录处理故障恢复(对于很快检测到的故障)。
奖金问题: