работа с динамо-блоками для чтения и записи - PullRequest
0 голосов
/ 21 октября 2018

Я использую Dynamo DB в качестве внутренней базы данных в моем проекте, я храню элементы в таблице размером 80 КБ или более (содержит вложенный JSON), а ключ раздела - это столбец с уникальным значением (уникальный для каждоговещь).Теперь я хочу выполнить разбиение на страницы для этой таблицы, т. Е. Мой пользовательский интерфейс будет предоставлять (строковые константы start-Integer, limit-Integer и type-2), и мой API должен извлекать элементы из динамо-базы данных на основе предоставленных входных параметров запроса из пользовательского интерфейса.Я использую метод SCAN из boto3 (python SDK), но это сканирование считывает все элементы из моей таблицы до рассмотрения моих фильтров и вызывает ошибку пропускной способности предоставления, но я не могу позволить себе ни увеличить пропускную способность моей таблицы, ни выбрать автоматическое масштабирование таблицы.Есть ли способ, как моя проблема может быть решена?Пожалуйста, дайте ваши предложения

1 Ответ

0 голосов
/ 24 октября 2018

У вас есть предел , установленный для вашего scan вызова?Если нет, DynamoDB вернет вам 1 МБ данных по умолчанию.Вы можете попытаться использовать limit и какой-либо режим сна или задержки в своем коде, чтобы обрабатывать таблицу медленнее и оставаться в пределах предоставленной емкости чтения.Если вы сделаете это, вам придется использовать LastEvaluatedKey , возвращенный вам, чтобы пролистать вашу таблицу.

Имейте в виду, что просто для чтения одного из ваших 80-килобайтных элементов выВы будете использовать 10 единиц для чтения и, возможно, больше, если ваши предметы будут больше.

...