Dynamodb GetBatchItem против запроса

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


person JamesWang    schedule 29.01.2020    source источник


Ответы (1)


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

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

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

person Charles    schedule 29.01.2020