В этой статье (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-indexes-gsi-sharding.html) рассказывается о методике разделения глобальных вторичных индексов по нескольким разделам путем введения случайного целого числа в качестве ключа раздела.
Это имеет смысл для меня, но статья не дает четкого объяснения, как затем запрашивать этот индекс. Допустим, я использую случайное целое число от 1 до 10 в качестве ключа раздела и число в качестве ключа сортировки, и я хочу получить 3 записи с наибольшим значением ключа сортировки (из всех разделов).
Нужно ли мне сделать 10 отдельных запросов, отсортировав каждый из них с ограничением в 3 элемента, затем выполнить сортировку в памяти полученных 30 элементов и выбрать первые 3? Это кажется излишне сложным и не очень эффективным для клиента.
Есть ли какой-нибудь способ сделать одну операцию DynamoDB, которая запрашивает все 10 разделов, выполняет сортировку и просто возвращает 3 записи с наибольшим значением vavlue?