Dynamodb GetBatchItem против запроса - PullRequest
0 голосов
/ 29 января 2020

В настоящее время я использую table.query, чтобы получить элементы, соответствующие ключу раздела и отсортированные по ключу сортировки. Теперь новым требованием является обработка пакетного запроса - пара сотен ключей разделов совпадает и, надеюсь, все еще будет отсортирована по ключу сортировки в каждом результате ключа раздела. Я нахожу GetBatchItem, который может обрабатывать до 100 элементов на один запрос, но выглядит как не сортировка. Один элемент здесь - одна строка в DDB или все строки в одном ключе раздела? С точки зрения производительности (скорости запросов) и цены, какой мне следует использовать? И нужно ли мне выполнять сортировку результата самостоятельно, если я использую GetBatchItem? В идеале мне нравится быстрое, экономичное решение и сортировка результатов по ключу сортировки в каждом ключе раздела, но первые два имеют высший приоритет, и я могу выполнить сортировку, если потребуется. Спасибо

1 Ответ

0 голосов
/ 29 января 2020

Query() дешевле ...

BatchGetItem() работает как отдельный GetItem() каждый стоит 1 RCU (при условии, что ваш предмет менее 400K).

Допустим, вы ' Если вы получите 10K, Query() может вернуть 40 из них за 1 RCU, тогда как возвращение 40 через BatchGetItem() будет стоить 40 RCU.

...