2016-06-16 22 views
2

Lambda(node.js)を使用してDynamodDBから特定のデータを取得し、アンドロイドアプリに送信します。問題は、Node.jsで自分の条件を満たすすべてのデータを一度に送信したくないということです。私はアンドロイドアプリのリストビューでそれらのデータを表示します。私のDBには、何百万ものレコードが存在する可能性があり、それらのデータをすべて取得するにはかなり時間がかかることがあります。私はこれらのデータを効率的に送信する方法について考えています。私の考えは、ユーザーが最後のレコードのIDでサーバーにリストの送信要求をスクロールし、DBを見て、別の20個のレコードをアプリケーションに送信するときに、最初の(たとえば)20個のレコードのみを送信することです。それを行うためのより良い方法はありますか?AWS DynamoDBからチャンクのデータを取得

答えて

3

dynamoDB用のamazon APIを使用すると、GET操作とSCAN操作でフェッチする結果の数を制限できます。

javascript sdkではLimitを指定できます。 APIは、結果をさらに取得するためのLastEvaluatedKeyを返します。

次の要求を行うときにLastEvaluatedKey値をExclusiveStartKeyとして渡します。

ラムダはステートレスなので、次回の取得が必要になったときに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

関連する問題