DynamoDB не сортируется по ключу сортировки - PullRequest
0 голосов
/ 17 марта 2019

Я иду по Курсу глубокого погружения DynamoDB Pluralsight с использованием консоли AWS. Я создал таблицу «сообщений» со следующими элементами:

all dyanmodb table items

При создании таблицы первичный ключ настраивался с помощью ключа сортировки:

Primary partition key:  |  userid (Number)
Primary sort key:       |  timestamp (Number)

Также был добавлен локальный вторичный индекс (LSI) с атрибутом рейтинга в качестве ключа сортировки:

Partition key:          |  userid (Number)
Sort Key:               |  rating (Number)

После создания и добавления некоторых записей глобальный вторичный индекс (GSI) был добавлен с использованием атрибутов topicid & rating:

Partition key:          |  topicid (Number)
Sort Key:               |  rating (Number)

При попытке запроса с использованием GSI и сортировки в порядке убывания (по ключу сортировки по рейтингу) элементы расположены не по порядку:

querying by topic id, and items out of order

Полагаю, я добавил некоторые элементы до создания GSI, а некоторые - после. В этот момент все предметы находились в таблице не менее 30 минут.

В соответствии с руководством, элементы должны быть отсортированы в порядке поля сортировки (рейтинга). Кажется, я упускаю что-то очевидное.


Обновление:

Интерфейс в консоли изменился с момента обучения. В этом руководстве предыдущая версия результатов не имеет индикаторов сортировки рядом с именами атрибутов, как показано здесь:

old results table has no sort indicator next to attribute names

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

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

Дополнительный вопрос: есть ли в консоли AWS способ использовать результаты для сортировки запроса вместо того, который последний раз выбирался в заголовке области результатов?

В противном случае вы получите следующий неинтуитивный результат при нажатии «Начать поиск», если ранее был нажат заголовок rating:

sort obeys heading rather than the query's sort parameter

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