首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DynamoDB ExclusiveStartKey滥用?

DynamoDB ExclusiveStartKey滥用?
EN

Stack Overflow用户
提问于 2017-06-09 21:59:48
回答 1查看 697关注 0票数 0

我计划使用Dynamo表作为一种复制日志,所以我有一个表,如下所示:

+--------------+--------+--------+ | Sequence Num | Action | Thing | +--------------+--------+--------+ | 0 | ADD | Thing1 | | 1 | DEL | Thing1 | | 2 | ADD | Thing2 | +--------------+--------+--------+

我的每个进程都跟踪它读取的最后一个序列号。然后,在间隔时间内,它对表发出一个ScanExclusiveStartKey设置为该序列号。我以为这会导致在那个序列之后阅读所有的东西,但是我却看到了不一致的结果。

例如,给定上面的表,如果我做了一个Scan(ExclusiveStartKey=1),当我期望看到第三行(seq=2)时,就会得到零的结果。

我有一种感觉,它与内部散列DynamoDB用于划分项有关,而且我误用了ExclusiveStartKey选项。

这是做这项工作的错误工具吗?

或者,每个进程可以在每个间隔上为seq+1发出一个seq+1(如果有发现,可以循环),这将导致相同的ReadThroughput,但是需要N API调用,而不是使用Scan获得的N/1MB

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-15 03:51:42

当您执行DynamoDB扫描操作时,它似乎不按哈希键进行排序。因此,使用ExclusiveStartKey不允许您获得任意页面的键。

对于这个具有序列ID的示例表,我想要的可以通过一个Kinesis流来完成。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44467255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档