Что содержит LastEvaluatedKey при использовании вторичных индексов в AWS DynamoDB? - PullRequest
1 голос
/ 14 июля 2020

Допустим, у меня есть таблица DynamoDB T с атрибутами H, R, G и S; H - это ключ раздела / ha sh, а R - ключ диапазона / сортировки. Скажем, у меня также есть глобальный вторичный индекс (GSI), который определяется с ключом раздела как G и ключом сортировки как S.

Когда запрос выполняется с использованием GSI, давая результаты с разбивкой на страницы, какие атрибуты следует ожидать в LastEvaluatedKey? Я читал документацию, но в ней нет этой детали.

Ответы [ 2 ]

1 голос
/ 14 июля 2020

Он вернет

{
  "G": "foo",
  "S": "bar"
}

В GSI не гарантируется, что этот ключ будет уникальным, так что имейте это в виду.

0 голосов
/ 03 августа 2020

Похоже, LastEvaluatedKey будет включать все четыре (H, R, G и S), когда запрос выполняется на GSI. Следующее, кажется, является правилом:

Если мы запрашиваем GSI, то LastEvaluatedKey будет состоять из ключа раздела GSI, ключа сортировки GSI, ключа первичного раздела и ключа первичной сортировки.

Если мы запрашиваем LSI, то LastEvaluatedKey будет состоять из ключа сортировки LSI, ключа первичного раздела и первичного ключа сортировки.

...