2016-06-16 2 views
2

Я получаю данные от DynamodDB с помощью Lambda (node.js) и отправляю их в приложение Android. Проблема в том, что я не хочу отправлять все данные, которые удовлетворяют моему состоянию в Node.js за один раз. Я просматриваю эти данные в виде списка в приложении для Android. В моей БД могут быть миллионы записей, и для получения всех этих данных может потребоваться очень много времени. Я думаю об эффективном способе отправки этих данных. Моя идея состоит в том, чтобы отправлять только первые (например) 20 записей, когда пользователь прокручивает список, отправляя запрос на сервер с идентификатором последней записи, просматривает БД и отправляет еще 20 записей в приложение. Есть ли лучший способ сделать это?Получение данных от AWS DynamoDB в кусках

ответ

3

API-интерфейс amazon для dynamoDB позволяет ограничить количество результатов, полученных вами при выполнении операций GET и SCAN.

javascript sdk позволяет указать Limit. 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

Смежные вопросы