我是AWS DynamoDB的新手,阅读了留档后,我不能100%确定在SCAN操作中使用“限制”参数时成本计算会发生什么。
我知道应该设计表,以便主要使用查询操作,并且扫描将扫描整个表,从而消耗大量的读取容量。我还知道FilterExpression不会影响扫描整个表的成本,但会过滤整个扫描后返回的内容,如果扫描的项目总数超过1 MB的最大数据集大小限制,则会停止扫描并返回结果。
我不确定的是,“Limit”参数是FilterExpression的一种类型,还是它停止了整个扫描,从而降低了读取成本。
例如,如果我有一个活动表,其排序键是一个日期字段(updatedAt),它有一百万行。如果我执行了限制为10的扫描(为了获取最新的10个活动),我显然会返回10行,但读取100万行会收费吗?成本是我最关心的问题。
是的,Limit
还会重新调整消耗的读取容量,以下是DynamoDB文档中的相关部分:
扫描操作提供了一个限制参数,可用于设置请求的页面大小。页面大小较小的每个扫描或查询请求使用较少的读取操作,并在每个请求之间创建“暂停”。例如,如果每个项的大小为4 KB,并且您将页面大小设置为40项,那么查询请求将只使用40个强一致性读取操作或20个最终一致性读取操作。大量较小的扫描或查询操作将允许您的其他关键请求在不受限制的情况下成功。
如您所见,每个页面大小较小的扫描或查询请求使用的读取操作较少。
例如,如果我有一个活动表,它的排序键是一个日期字段(updatedAt),并且它有一百万行。如果我执行一个限制为10的扫描(为了得到最近的10个活动),我显然会得到10行,但我会因为读取100万行而被收费吗?成本是我主要关心的问题。
我有一个带有NodeJS 10.x的AWS Lambda。这个Lambda试图扫描基于“FilterExpression”的DynamoDB表。我正在使用DocumentClient执行“扫描”操作。尽管使用了各种方法,但我无法读取和迭代结果对象。 我尝试使用以下方法:
我正在尝试使用contains FilterExpression从AWS Dynamo DB scan获取数据。我正在使用以下参数,但收到的响应为空: {“Items”:[],“Count”:0,“ScannedCount”:792,“LastEvaluatedKey”:{“ID”:“b123456789”} 我想根据数组中的字符串进行过滤,例如:orange from fruits:['oran
我正在尝试使用Java aws sdk版本1.11.140使用限制为1的DynamoDBScanExpression 即使我使用. with Limit(1)即。 返回所有条目的列表,即7。我做错什么了吗? P. S.我尝试使用cli进行查询 返回我只有1个结果。
我们有一个设置,其中各种工作节点执行计算并更新DynamoDB表中的相对状态。该表充当工作节点活动的一种历史记录。看门狗节点需要定期扫描表,并构建一个表示工作节点及其作业的当前状态的对象。因此,我们的应用程序能够扫描表并按时间顺序检索数据(即按时间戳排序)是很重要的。表最终会太大,无法扫描到本地内存进行后期排序,所以我们扫描后无法排序。 从AWS留档读取主键: DynamoDB使用分区键值作为内部
我对DynamoDB的性能有问题,我想澄清一下我有点困惑的地方。 执行扫描表中的100条记录,条件是使用(例如)。如果在表中找到20条记录,DynamoDB是否还扫描其他80条记录? 扫描时分页是如何工作的? 消耗超过分配的RCU和WCU的后果是什么?