运行 DynamoDB 中整个 table 的 AWS batch-execute-statement

Run AWS batch-execute-statement on the entire table in DynamoDB

我在 DynamoDB 中有一个 table,我需要更新其中的所有项目。每个项目都有一个键和多个带有布尔值的列。它看起来有点像这样:

Key BooleanOne BooleanTwo
key-one true true
key-two true false
key-three true false

我有很多这样的项目(太多了,无法手动复制所有键以在批处理执行语句中制作单独的语句),但我找不到一种方法来遍历所有应该符合的项目WHERE 子句中的以下条件:BooleanTwo = false.

我如何执行一个批处理语句,将所有具有 BooleanTwo = false 的项目更新为 BooleanTwo = true,而无需手动输入 table 中的所有键?

通常情况下,如果项目数量很少,我会这样做:

[    
    {
        "Statement": "UPDATE MyTable SET BooleanTwo=true where Key=key-two"
    },
    {
        "Statement": "UPDATE MyTable SET BooleanTwo=true where Key=key-three"
    }
]

我想做这样的事情:

"Statement": "UPDATE MyTable SET BooleanTwo=true where BooleanTwo=false"

我怎样才能做到这一点?

DynamoDB 无法通过仅提供一个简短的声明性命令来指定要更新的项目的条件来进行批量更新。

鉴于您拥有的此模式,您需要使用过滤器进行扫描并发出批量写入调用。它不必完全是手动的(无需人工输入按键),但这将是一个大循环。您可以进行并行扫描以使其更快。