【问题标题】:Dynamo db fails partially to update recordDynamo db 部分更新记录失败
【发布时间】:2018-05-02 19:35:15
【问题描述】:

我有一个应用程序可以更新 dynamo-DB 中的条目,它只不过是当前时间的更新 UTC 时间戳。 我有一项任务,我正在尝试使用新的 UTC 时间戳更新所有 94000 条记录。 我当前的 dynamo-DB 配置具有 80 个读写单元的容量。 完成这项任务后,我检查并更新了高达 50% 的记录,但不是全部。 所有更新操作均在现有索引上执行,具有 80 单位读取/权利容量。

如果我超出了写入容量怎么办?它还会延迟更新记录吗?还是会半途而废?

 result = cls.db_table.scan(req_id__eq=str(req.id))
        for req in result:
             req['timestamp'] = time() * 1000
            if not req.partial_save():
                LOGGER.error('Unable to update req {}'.format(req.items()))

【问题讨论】:

    标签: python amazon-dynamodb boto


    【解决方案1】:

    如果我超出了写入容量怎么办?

    超过写入容量单位时,DynamoDB 将抛出 ProvisionedThroughputExceededException。

    它还会延迟更新记录吗?还是半途而废?

    一旦超过写入容量单位,它将引发异常。但是 DynamoDB 可以处理一些突发写入,但不能持续很长时间。

    【讨论】:

    • 我在 python 上使用 boto 库,根本没有收到 ProvisionedThroughputExceededException,但我确实在 AWS 控制台中收到了 dynamodb 警报,说超出了读/写容量。对于导入结果:lead['timestamp'] = time() * 1000 if not lead.partial_save(): LOGGER.error('Unable to update lead {}'.format(lead.items())) 我不获取任何日志。
    • @ROHIT 你得到什么回应?
    • lead.partial_save() 总是返回 true,所以从我的代码方面我无法判断它是否更新/没有
    • @ROHIT 你能把你的代码 sn-p 贴出来吗?
    • 用 sn-p 更新了我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-11
    • 2020-12-06
    • 1970-01-01
    • 1970-01-01
    • 2016-08-03
    • 1970-01-01
    • 2023-01-24
    相关资源
    最近更新 更多