当前位置: 首页 > 知识库问答 >
问题:

如何扫描DynamoDB主键而不会导致内部读取完整数据?

卞安邦
2023-03-14

当我扫描一个表(包括所有字段)时,DynamoDB限制为1000,每次扫描大约480个项目,因为每个项目都足够大,DynamoDB会根据1MB大小限制截断响应。

然而,当我扫描同一个表,并使用ProjectionExpression只请求主键字段时,我仍然只得到大约480个项目,这表明DynamoDB不必要地从每个项目加载完整数据,只会丢弃主键以外的数据,而不是直接从主索引中提取键。

如何只扫描主索引,而不导致DynamoDB读取全部项目,从而导致DynamoDB使用(并向我收取)不必要的读取容量?

共有1个答案

赫连越
2023-03-14

您将需要创建一个仅投影所需属性的二级索引。然后扫描此索引,每个项目将仅使用其读取容量中的预计大小,而不是原始的大大小。

 类似资料:
  • 具有数十亿条目的理论表。 分区键是表示给定设备ID的唯一uuid。大约会有10k唯一的uuid。 排序键是数据收集时间的日期字符串。 每个项目都有一些数据字段。有几十个字段,因此为每个字段制作GSI是不合理的。对于我们的示例,假设我们正在寻找“dataOfinterest”字段。 我想在数据库中搜索“dataOfinterest='fobar'的所有项目”——理想情况下是在日期范围内进行。据我所知

  • 我正在尝试使用基于处理的android应用程序扫描蓝牙设备。我想使用处理通过蓝牙与我的微控制器板通信,如下例所示: http://webdelcire.com/wordpress/archives/1045 我成功地在我的android平板电脑上启动了这个应用程序。但是,我无法在平板电脑上列出蓝牙设备。我的平板电脑识别的唯一蓝牙设备是我电脑上的蓝牙适配器。为什么我不能列出所有蓝牙设备?我的电脑能够

  • 我试图通过使用命令“java postfix 错误: 请在java.util.scanner.throwfor(未知源) 在java.util.scanner.next(未知源) 在java.util.scanner.nextInt(未知源) 在java.util.scanner.nextInt(未知源) 在java.util.scanner.nextInt(未知源) 在java.util.sca

  • 我在用node.js. 如果你看这个例子: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Scan.html 上面写着: 其中限制结果项的数量: 通常,AWS CLI自动处理分页;然而,在本例中,CLI的--page size参数限制了每页的项目数。 但如果您读取节点。js AWS文件: https://docs.

  • 我的DynamoDB表数据架构: 我的主要用例是,我有一个“PK”和“SK”的范围,这是目标时间范围,并查询DDB以获得“摘要”列表。这种数据设计适用于DDB API。 现在,我想使用AppSync为这个DynamoDB for Amplify应用程序创建一个GraphQL API。所以我创建了一个像这样的GraphQL模式: GraphQL自动为我创建了2个查询API:和。支持我的是,当我列出A

  • 我在java中有这段代码,代码工作得很好 你对这个问题有什么解决办法吗??? 谢谢