Описаны ли глобальные вторичные индексы DynamoDB на основе их собственного ключа раздела? - PullRequest
0 голосов
/ 02 апреля 2020

Я немного озадачен тем, что читаю в справке DynamoDB, когда речь заходит об их рекомендациях по разработке ключа раздела.

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

Но затем, когда объясняют глобальные вторичные индексы, они продолжают поступать с точностью до наоборот во всех приведенных примерах:

  • в в этом рекордном примере они создать ключ разделения на ключ, который имеет одно значение! Не означает ли это, что все запросы на высокие баллы (которые «часто запрашиваются» в соответствии с определением проблемы) будут попадать в один и тот же осколок?
  • в примере перегрузки GSI , они предлагают создать GSI, который использует ключ сортировки таблицы в качестве ключа раздела, а затем выполнить поиск, например, по Employee_Name - но Employee_Name является ключом разделения в GSI, так что опять все эти запросы не попадут в один и тот же осколок?

Не приведут ли эти примеры создание горячих разделов в GSI и, следовательно, страдают от проблем масштабирования? Или я что-то недопонимаю?

1 Ответ

0 голосов
/ 02 апреля 2020

Я думаю, что вы правы, и эти примеры действительно неправильны именно по указанным вами причинам.

Я думаю, что в примере с перегрузкой GSI они переключили раздел и ключ сортировки - я открыл вопрос о столько месяцев go объясняет, почему я так думаю - см. https://github.com/awsdocs/amazon-dynamodb-developer-guide/issues/202 - но пока это не было исправлено (или никто не вернулся, чтобы объяснить мне, почему пример был верным).

...