В настоящее время я использую table.query для получения элементов путем сопоставления ключа раздела и сортировки по ключу сортировки. Теперь новое требование состоит в том, чтобы обрабатывать пакетный запрос - пара сотен ключей разделов совпадают и, надеюсь, все еще отсортированы по ключу сортировки в каждом результате ключа раздела. Я нахожу GetBatchItem, который может обрабатывать до 100 элементов на один запрос, но, похоже, без сортировки. Один элемент здесь - одна строка в DDB или все строки в одном ключе раздела? Что мне следует использовать с точки зрения производительности (скорости запроса) и цены? И нужно ли мне самому выполнять сортировку результата, если я использую GetBatchItem? В идеале мне нравится быстрое, экономичное решение с сортировкой результатов по ключу сортировки в каждом ключе раздела, но первые два являются наивысшим приоритетом, и я могу выполнить сортировку, если потребуется. Спасибо
Dynamodb GetBatchItem против запроса
Ответы (1)
Query()
дешевле ...
BatchGetItem()
работает как индивидуальный GetItem()
, каждый из которых стоит 1 RCU (при условии, что ваш товар меньше 400K).
Допустим, у вас 10 КБ, Query()
может вернуть 40 из них за 1 RCU, тогда как возврат 40 через BatchGetItem()
будет стоить 40 RCU.
person
Charles
schedule
29.01.2020