DynamoDB Как запросить неключевой атрибут с сильной согласованностью? - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть следующая таблица в DynamoDB:

Table: Person

Attributes: person_id, firstName, lastName, age, birthday

Partition Key: person_id

Моя проблема: мне нужно опросить всех людей, которые находятся в определенном возрасте, например, возраст> 18 И возраст <45. </p>

Однако мне нужна строгая согласованность в моем запросе, поэтому я не могу использовать глобальный вторичный индекс.

В этом случае, какие будут наилучшие / возможные решения?

Ответы [ 2 ]

1 голос
/ 20 апреля 2019

То, что вы просите, противоречиво.Если вам нужно получить «всех людей в возрасте от 18 до 45 лет», если эта таблица не очень мала, набор людей может измениться, когда вы запрашиваете.По сути, это тип операции, который допускает возможную последовательность.

Мне также интересно, что вы будете делать с результатами.

Если таблица действительно большая и у вас будет многорезультатов для вашего запроса, как бы вы представили данные?

Если таблица всегда мала, вы можете просто отсканировать ее и применить фильтры.

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

0 голосов
/ 20 апреля 2019

Я бы предложил вам использовать операцию scan, поскольку вы хотите выполнить фильтрацию, но вам не известен ключ раздела .В Java вы можете следовать приведенному ниже руководству для сканирования таблицы и использования выражений фильтра.https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ScanJavaDocumentAPI.html

...