【问题标题】:Scanning DynamoDB table while inserting插入时扫描 DynamoDB 表
【发布时间】:2018-01-10 10:27:23
【问题描述】:

当我们扫描 DynamoDB 表时,我们可以/应该使用 LastEvaluatedKey 来跟踪进度,以便我们可以在出现故障时恢复。文档说

LastEvaluateKeyThe primary key of the item where the operation stopped, inclusive of the previous result set. Use this value to start a new operation, excluding this value in the new request.

我的问题是,如果我开始扫描、暂停、插入几行并从之前的 LastEvaluatedKey 恢复扫描,我会在恢复扫描后获得这些新行吗?

我的猜测是我可能会错过所有新行中的一些,因为新键将被散列并且值可能小于LastEvaluatedKey

我猜对了吗?感谢任何解释或文档链接。

【问题讨论】:

    标签: amazon-web-services amazon-dynamodb


    【解决方案1】:

    它按顺序遍历您的数据,并且不知道在此过程中添加的所有项目:

    扫描操作按顺序进行;但是,为了获得更快的性能 在大表或二级索引上,应用程序可以请求 通过提供 Segment 和 TotalSegments 进行并行扫描操作 参数。

    它不仅会丢失一些在您开始扫描后添加的项目,如果您使用最终一致读取,它还可能会丢失一些在扫描开始之前添加的项目:

    扫描在访问数据时使用最终一致性读取 桌子;因此,结果集可能不包括对数据的更改 在操作开始前的表格中。

    如果您需要跟踪开始扫描后添加的项目,您可以使用DynamoDB streams

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-06
      • 1970-01-01
      • 1970-01-01
      • 2016-10-15
      相关资源
      最近更新 更多