如何在不使用Node-js中的Scan的情况下从Dynamo-Db中读取单个列?

Vis*_*han 5 node.js amazon-dynamodb aws-sdk-nodejs

我的Dynamo Db中有450万条记录。

我想批量读取每个记录的ID。

我期望像偏移和限制之类的东西,例如我们如何在Mongo Db中阅读。

有没有在Node-JS中没有扫描方法的建议。

我已经进行了足够的研究,我只能找到一种扫描方法,该方法可以缓冲Dynamo Db的完整记录,并且它开始扫描记录,这在性能方面无效。

请给我建议。

Jos*_*hin 2

关于 DynamoDB,首先要了解的是它是一个支持二级索引的键值存储。

如果应用程序经常必须在不使用索引(主索引或辅助索引)的情况下迭代整个数据集,那么 DynamoDB 是一个糟糕的选择,因为唯一的方法是使用 API Scan

DynamoDB 表扫描是(我能想到的一些事情)

  1. 贵(我的意思是$$$)
  2. 大数据集速度慢
  3. 可能会耗尽预配置的吞吐量

如果您知道 DynamoDB 中所有项目的主键(一些外部知识,例如primary 是一个自动递增值,在另一个数据库中引用等),那么您可以使用BatchGetItemor Query

因此,如果这是一次性的事情,那么这Scan是您唯一的选择,否则您应该考虑重构您的应用程序以消除这种情况。