Как сканировать таблицу DynamoDB для поиска только одного элемента в каждом ключе раздела - PullRequest
0 голосов
/ 19 февраля 2020

Допустим, у меня есть таблица с ключом раздела "ID" и ключом диапазона "Время" со следующими элементами:

ID  | Time | Data
------------------
A   | 1    | abc
A   | 2    | def
B   | 2    | ghi
B   | 3    | jkl

И я хочу сканировать только один элемент в каждом разделе, который имеет самый высокий значение времени в каждом разделе. Таким образом, результат сканирования должен выглядеть следующим образом:

ID  | Time | Data
------------------
A   | 2    | def
B   | 3    | jkl

Возможно ли это с функцией сканирования DynamoDB? (Я хочу избежать сканирования всех и выполнять такую ​​фильтрацию самостоятельно).

1 Ответ

0 голосов
/ 19 февраля 2020

Если вы хотите получить только несколько IDs вместе с их самым высоким Time, вы можете сделать запрос с обратным индексом, поэтому для каждого идентификатора у вас будет прочитан только 1 элемент. Но для этого вам нужен существующий список идентификаторов.

Таким образом, для каждого идентификатора будет:

  • 1 запрос
  • 1 прочитанный элемент

В противном случае единственный способ, к сожалению, сканировать все.

...