Как обрабатывать ответ DynamoDB, когда запрос возвращает более 10 КБ строк - PullRequest
0 голосов
/ 29 мая 2020

Я использую DynamoDB в качестве базы данных в моем asp. net основном проекте веб-API (. net core 2.2). В моей таблице тысячи строк, и некоторые запросы возвращают более 10 тысяч строк с ключом и выражением фильтра. Ясно, что я использую ограничения страниц и разбиение на страницы, чтобы вернуть эти огромные данные во внешний интерфейс. Мой объект запроса выглядит примерно так (я пропустил выражение фильтра, но они также присутствуют):

enter image description here

И затем

enter image description here

Ограничение страницы составляет 100 строк, и он работает нормально, но как только я увеличиваю этот предел до 500, запрос становится очень медленным и занимает почти 3-4 секунды. Если я увеличу лимит до более чем 1000 строк, он практически непригоден. Я не использую никаких преобразователей, таких как JsonConverter, в моих классах моделей.

Мой вопрос: сталкивался ли кто-нибудь с этой проблемой с. net SDK для DynamoDB, т.е. выборка 500 или более строк за один вызов БД становится очень медленной . Для сравнения: тот же запрос в той же таблице с использованием AWS CLI выполняется очень быстро.

Мой другой вопрос: использовал ли кто-нибудь другой подход к этой ситуации, т.е. ваш запрос возвращает более, скажем, 10 тыс. Строк, даже с ключом и выражения фильтра, и вы не используете разбиение на страницы и ограничение страниц для решения этой проблемы, а используете совершенно другой (и, вероятно, умный :)) подход.

PS: Я думаю, что я включил большинство шаблонов проектирования, предложенных Amazon для DynamoDB, например, наименьшее количество таблиц (у меня только одна), и я довольно четко представлял свои шаблоны доступа к базе данных, прежде чем начал работать над дизайном таблиц. Но из-за характера моего приложения я не могу помочь с 2-3 запросами, возвращающими такие большие данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...