如何在不使用java指定主键的情况下从DynamoDB表中获取所有项?

如何在不使用java指定主键的情况下从DynamoDB表中获取所有项?,java,amazon-dynamodb,Java,Amazon Dynamodb,我对Amazon的AWS及其Java API还相当陌生,所以我不确定我要尝试的最有效的方法是什么。基本上,我正在尝试建立一个数据库来存储项目的ID、状态以及bucket。我遇到的问题是获取没有主键的所有用户的列表?。有什么建议吗?您可以使用DynamoDB提供的“扫描”操作。操作时不需要主键。但请记住,扫描操作效率非常低,需要更多的读取容量。阅读官方文件上的Scan 如果只想检索所有条目,DynamoDB可能不是存储此数据的正确选择。“如果只想检索所有条目,DynamoDB可能不是存储此数据的

我对Amazon的AWS及其Java API还相当陌生,所以我不确定我要尝试的最有效的方法是什么。基本上,我正在尝试建立一个数据库来存储项目的ID、状态以及bucket。我遇到的问题是获取没有主键的所有用户的列表?。有什么建议吗?

您可以使用DynamoDB提供的“扫描”操作。操作时不需要主键。但请记住,扫描操作效率非常低,需要更多的读取容量。阅读官方文件上的
Scan


如果只想检索所有条目,DynamoDB可能不是存储此数据的正确选择。

“如果只想检索所有条目,DynamoDB可能不是存储此数据的正确选择。”-为什么不呢?@lonewarrior556就其中一个而言,我认为这将是相当昂贵的:假设您有一个包含1000个项目的表,并且希望使用扫描操作在一秒钟内读取所有项目:-假设每个项目的大小小于4Kb-假设您使用的是最终一致的读取-您将需要500个单位的读取容量-当前价格为每小时0.0065美元,每秒可获得50个单位的读取容量-这将花费365天*24小时*($0.0065*10)=$569.4/年-价格随表大小的增加而线性增加如果表大小保持较小,价格将比大多数RDS选项便宜。很明显,有一个悬崖,那里不再是行数和大小的情况。需要进行大量的计划。不仅仅是使用查询来限制查找和返回的内容?当然但就IO命中率而言,它是否比关系数据库中的表扫描效率更低?