Некоторые базовые c сомневаются в AWS DynamoDB 'Keys' - PullRequest
1 голос
/ 30 мая 2020

Я видел эти термины везде -

  • Первичный ключ
  • Ключ сортировки
  • Ключ раздела
  • Вторичный ключ

Но я, кажется, запутался в названиях:

  • Являются ли ключ раздела и первичный ключ одним и тем же? Что это такое?
  • То же самое go с ключом сортировки и вторичным индексом? Какую роль будет играть вторичный ключ, если я его добавлю?

Кроме того, во время создания таблицы DynamoDB я добавил 'Order ID' в качестве первичного ключа - теперь мне нужно заменить его на 'User ID' и сделайте «Order ID» вторичным ключом.

Итак, Order ID будет «вторичным ключом», а User ID будет «первичным ключом» Как можно ли этого достичь?

Любая помощь приветствуется! :) Спасибо!

1 Ответ

6 голосов
/ 30 мая 2020

Ключ раздела и первичный ключ - это одно и то же? Что это такое?

Нет.

Первичный ключ - это то, что однозначно идентифицирует каждый элемент в таблице.

Ключ раздела - это один из возможных видов первичного ключа , другой - ключ раздела + ключ сортировки (т.е. «составной» первичный ключ, как вы бы назвали его в других системах БД).

Делает то же самое go с ключом сортировки и Вторичный индекс? Какую роль будет играть вторичный ключ, если я его добавлю?

Ключ сортировки и вторичный индекс - это тоже разные вещи.

Ключ сортировки может использоваться как «второй элемент» в «составной ключ» в первичном ключе. Другими словами, первичный ключ может быть типа «ключ раздела» или «ключ раздела + ключ сортировки».

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

Взгляните здесь: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html

Все это объясняется множеством примеров.

во время создания таблицы DynamoDB я добавил: «Идентификатор заказа» в качестве первичного ключа - теперь мне нужно заменить его на «Идентификатор пользователя» и сделать «Идентификатор заказа» в качестве вторичного ключа.

Вы не можете этого сделать.

Невозможно изменить первичный ключ таблицы DynamoDB.

Вот соответствующие документы: https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html

Я видел эти термины повсюду - [...]

В качестве заключительного комментария, просто имейте в виду, что вы также можете увидеть несколько других терминов. Раньше DynamoDB использовал разные термины для «ключа раздела» и «ключа сортировки». Раньше они назывались, соответственно, «Ha sh Key» и «Range Key». Вы, вероятно, увидите много ссылок на эти имена в SDK, параметрах CLI и т. Д. c.

...