我在项目中使用dynamo db作为后端数据库,将项目存储在表中,每个项目的大小大于或等于80 Kb(包含嵌套的JSON),并且分区键是唯一的值列(每个列均唯一)项目)。现在我想在此表上执行分页,即我的UI将提供(start-Integer,limit-Integer和type-2字符串常量),并且我的API应该根据UI提供的输入查询参数从dynamo db检索项目。我正在使用来自boto3(python SDK)的SCAN方法,但是此扫描在考虑过滤器并导致置备吞吐量错误之前从表中读取了所有项目,但是我无法提高表的吞吐量或选择表自动缩放。有什么办法可以解决我的问题?请提出您的建议
答案 0 :(得分:0)
您在scan
通话中设置了limit吗?如果没有,默认情况下,DynamoDB将返回1MB数据。您可以尝试使用limit
并在代码中进行某种睡眠或延迟,以便以较低的速度处理表并保持在预配置的读取容量之内。如果这样做,则必须使用返回的LastEvaluatedKey来翻阅表格。
请记住,仅读取80kb项目中的一个,您将使用10 read capacity units,如果项目较大,则可能会使用更多。