Amazon dynamodb DynamoDB排他性EstartKey滥用?

Amazon dynamodb DynamoDB排他性EstartKey滥用?,amazon-dynamodb,Amazon Dynamodb,我计划使用Dynamo表作为一种复制日志,因此我有一个如下表: +--------------+--------+--------+ |序列号|动作|事物| +--------------+--------+--------+ |0 |添加|内容1| |1 | DEL | Thing1| |2 |添加|内容2| +--------------+--------+--------+ 我的每个进程都会跟踪它读取的最后一个序列号。然后每隔一段时间,它对表发出一次扫描,并将ExclusiveStar

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


+--------------+--------+--------+
|序列号|动作|事物|
+--------------+--------+--------+
|0 |添加|内容1|
|1 | DEL | Thing1|
|2 |添加|内容2|
+--------------+--------+--------+

我的每个进程都会跟踪它读取的最后一个序列号。然后每隔一段时间,它对表发出一次
扫描
,并将
ExclusiveStartKey
设置为该序列号。我认为这会导致在那个序列之后读取所有内容,但相反,我看到的是不一致的结果

例如,根据上表,如果我进行
扫描(ExclusiveStartKey=1)
,当我希望看到第三行(
seq=2
)时,结果为零

我觉得这与DynamoDB用来划分项目的内部哈希有关,而且我误用了
ExclusiveStartKey
选项

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


或者,每个进程可以在每个间隔上对
seq+1
发出
Query
(如果找到任何内容,则循环),这将导致相同的读吞吐量,但需要
N
API调用,而不是执行DynamoDB扫描操作时我通过
Scan
得到的
N/1MB
,它似乎没有按哈希键排序。因此,使用
ExclusiveStartKey
不允许您获得任意一页的密钥


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

您是否遵守扫描的正确语法?