如何在 DynamoDb 中“从表中选择 *”?

iCo*_*unk 3 java amazon-dynamodb

我正在浏览教程,它们似乎都在使用某种条件进行查询。我怎样才能获得数据库中的所有项目?

MGh*_*oft 5

为全表扫描执行 SCAN 操作。您可以选择向扫描添加过滤器。

SCAN 可能没有您想象的那么好。首先,它一次最多只能扫描 1MB 的数据。如果您需要更多数据,您可以拨打额外的电话。此外,此 1MB 限制是在过滤之前应用的。也就是说,每次 SCAN 查找最多 1MB 的数据并根据您的标准进行过滤,而不是在过滤时继续扫描直到达到 1MB 限制。

此外,SCAN 可能会导致读取活动突然爆发。假设您的记录是 1KB,并且您每秒进行一次 SCAN,那么一次 SCAN 最多可以返回 1000 条记录,这会消耗 500 次读取容量。在进行扫描时,您可能希望设置一个小于默认 1MB 的限制。

最后,SCAN 不保证结果的顺序。您不能指定“order by”,并且不应对其返回的顺序进行假设。

DynamoDB 用于存储键值数据。您应该通过键查询值。如果您不总是查询主键并获得唯一记录,您可以添加全局二级索引,这使您能够按两列查询并按其中一列排序。

请参阅 AWS 文档:http : //docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html