Сканирование DynamoDB по индексу второго дня (GSI) - PullRequest
1 голос
/ 20 мая 2019

Я читал документацию по сканированию, и в ней предваряется:

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

Меня удивило, при каких условиях сканирование вторичного индекса будет возвращать другой набор записей, который будет возвращать обычная таблица?

Сканирование не поддерживает выражение KeyConditionExpression., только FilterExpression - что в основном происходит после того, как данные были извлечены.

Так что будет означать сканирование GSI против таблицы?

1 Ответ

2 голосов
/ 20 мая 2019

Сканирование может дать разные результаты в GSI по сравнению с базовой таблицей, поскольку GSI может быть разреженным .

GSI имеет другой ключ, установленный для базовой таблицы.Элементы записываются в GSI только в том случае, если на элементе присутствуют ключи GSI.В противном случае он опускается, то есть в GSI может быть меньше данных, чем в базовой таблице.

Допустим, базовая таблица имеет атрибут разделения A и ключ сортировки B.GSI в этой таблице имеет атрибут раздела C и не имеет ключа сортировки.Если элемент имеет значения только для атрибутов A и B, но не C, этот элемент не будет отображаться в GSI.

РЕДАКТИРОВАТЬ: пример использования AWS в предоставленной мной ссылке -БИС.Я использовал пример GSI, как это было в вопросе.Принцип тот же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...