2016-06-16 24 views
2

Ich bekomme bestimmte Daten von DynamodDB mit Lambda (node.js) und sende es an Android App. Das Problem ist, dass ich nicht alle Daten, die meine Bedingung in Node.js auf einmal erfüllen, senden soll. Ich sehe diese Daten in der Listenansicht in meiner Android-App. In meiner Datenbank könnte es Millionen von Datensätzen geben und es könnte sehr lange dauern, bis all diese Daten vorliegen. Ich denke über die effiziente Art der Übermittlung dieser Daten nach. Meine Idee ist, nur zuerst (zum Beispiel) 20 Datensätze zu senden, wenn der Benutzer die Liste heruntersenden Anfrage an den Server mit der ID des letzten Datensatzes, durch die Datenbank schauen und weitere 20 Datensätze an App senden. Gibt es einen besseren Weg?Abrufen von Daten aus AWS DynamoDB in Chunks

Antwort

3

Mit den Amazon APIs für dynamoDB können Sie die Anzahl der Ergebnisse einschränken, die Sie in GET- und SCAN-Vorgängen abrufen.

Das Javascript sdk ermöglicht es Ihnen, Limit anzugeben. Die API gibt LastEvaluatedKey zurück, mit der Sie weitere Ergebnisse abrufen können.

Übergeben Sie den LastEvaluatedKey-Wert als ExclusiveStartKey, wenn Sie die nächste Anforderung vornehmen.

Da Lambda statuslos ist, müssen Sie den LastEvaluatedKey an den Client zurückgeben und ihn beim nächsten Abruf an die Funktion zurückgeben.

Referenz doc: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#query-property https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#scan-property