我想使用DynamoDB Streams在S3上进行增量DynamoDB备份。我有一个lambda读取dynamodb流并将文件写入S3。为了标记已读取的分片,我将ExclusiveStartShardId登录到配置文件中。
我的工作是:
这里的问题是我只读取已关闭的分片,为了获得新的记录,我必须等待(未确定的时间量)才能关闭它。
似乎最后一个分片通常处于 OPEN 状态( NO EndingSequenceNumber)。如果我从上面的伪代码中删除了对EndingSequenceNumber的检查,我最终会得到无限循环,因为当我点击最后一个碎片时,始终会显示NextShardIterator。我也不能检查提取的项目是否为0,因为可能存在"空白"在碎片中。
在本教程中, numChanges 用于停止无限循环http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.LowLevel.Walkthrough.html#Streams.LowLevel.Walkthrough.Step5
在这种情况下,最好的方法是什么?
我也发现了一个类似的问题:Reading data from dynamodb streams。不幸的是我找不到我的问题的答案。