Итак, я постараюсь сделать это более понятным для вас, дайте мне знать, если что-то все еще не имеет смысла.
Для начала, вы упомянули тот факт, что:
Однако объект HR-Employee - PK: EmployeeID, SK: имя сотрудника в таблице примера содержит значения SK, которые не являются именами сотрудников.
Причина, по которой значения SK не являются "Employee"«Имена» - это потому, что SK не только для «Имена сотрудников», но и для других запросов (таких как «Имя региона», «Название страны» и т. Д.).Думайте о СК как о том, что именно он обозначает, как ключ к сортировке.Кажется, в документации не хватает объяснения дополнительных SK, которые у них есть, поэтому позвольте мне обобщить то, на что вы смотрите.
У вас есть HR-Employee1 с Employee Name = Employee1, QuotaID (угадывает, что это за ключ) = QUOTA-2017-Q1, некоторый другой ключ = HR-CONFIDENTIAL
Эти имена ключей на самом деле не определены в таблице, все они идут под ключом сортировки и являются неявно «именем сотрудника» или ««идентификатор квоты» или «имя региона».
Это позволяет вам запрашивать данные о сотрудниках, используя employeeID в качестве PK и имя сотрудника в качестве SK, но также позволяет запрашивать данные Quota сотрудника (или что-либо подобное).это так), используя employeeID в качестве PK и quotaID в качестве SK.
То же самое относится и ко второму вопросу, касающемуся GSI-1.По сути, способ, которым они разработали таблицу в этом сценарии, заключается в том, что у вас есть SK "SortKey", где вы можете иметь различные типы значений для сортировки, если это имеет смысл.