我使用 Lambda (node.js) 从 DynamodDB 获取特定数据并将其发送到 android 应用程序。问题是我不想一次性发送所有满足我在 Node.js 中的条件的数据。我在我的 android 应用程序的 ListView 中查看这些数据。在我的数据库中可能有数百万条记录,获取所有这些数据可能需要很长时间。我正在考虑发送这些数据的有效方式。我的想法是只发送第一个(例如)20 条记录,当用户向下滚动列表时,使用最后一条记录的 ID 向服务器发送请求,查看数据库并将另外 20 条记录发送到应用程序。有没有更好的方法呢?
最佳答案
dynamoDB 的亚马逊 API 允许您限制在 GET 和 SCAN 操作中获取的结果数量。
javascript sdk 允许您指定限制
。
API 返回 LastEvaluatedKey,这将允许您检索更多结果。
在发出下一个请求时将 LastEvaluatedKey 值作为 ExclusiveStartKey 传递。
由于 Lambda 是无状态的,您必须将 LastEvaluatedKey 传回客户端,并在下次需要检索时将其传回函数。
引用文档: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#query-property https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#scan-property
关于android - 以 block 的形式从 AWS DynamoDB 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37863215/