В чем разница между локальным вторичным индексом AWS DynamoDB и глобальным вторичным индексом? - PullRequest
0 голосов
/ 22 мая 2018

Из документации DynamoDB:

Глобальный вторичный индекс - индекс с ключом секционирования и ключом сортировки, который может отличаться от индекса базовой таблицы.Глобальный вторичный индекс считается «глобальным», поскольку запросы к индексу могут охватывать все данные в базовой таблице по всем разделам.

Локальный вторичный индекс - индекс, имеющий тот же ключ секционирования, что и базовый.таблица, но другой ключ сортировки.Локальный вторичный индекс является «локальным» в том смысле, что каждый раздел локального вторичного индекса ограничен разделом базовой таблицы с одинаковым значением ключа раздела.


Это просто не имеет смысламне, и никакое количество поисков не может точно объяснить это мне.

Может ли кто-нибудь помочь мне с пониманием этого?

Ответы [ 2 ]

0 голосов
/ 20 июня 2018

Локальный вторичный индекс (LSI)

  • может быть создан только при создании table
  • общего доступа capacity units с table
  • index partition key должен совпадать с table partition key
  • a table может иметь 5 LSI

Глобальный вторичный индекс (GSI)

  • может быть создан в любое время, но для его настройки требуется время (из-за копирования оригинальных table элементов в индекс table,стоимость read capacity units из table)
  • имеет отдельный набор capacity unit
  • любой attribute может быть partition key
  • a tableможет иметь 5 GSI
0 голосов
/ 22 мая 2018

Когда вы вставляете данные в DynamoDB, он внутренне разделяет данные и хранит их в разных узлах хранения.Это основано на ключе раздела.

Допустим, вы хотите запросить элемент на основе неключевого (ни ключа раздела, ни ключа сортировки), вам нужно использовать сканирование (которое стоит дорого, поскольку проверяет всепредметы в таблице).

Вот тут-то и вступают GSI и LSI. Давайте возьмем пример таблицы ученика с StudentsId в качестве ключа сортировки и SchoolId в качестве ключа раздела.

LSI полезна, если у вашего приложения есть вопросы, такие как получениевсе ученики 5 класса данной школы.

Если вам необходимо опросить всех учащихся 5-го класса во всех школах (по всем школьным разделам), вам потребуется GSI.

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