2016-01-07 2 views
-1

Как часть перехода из SQL в DYnamoDB Я пытаюсь создать таблицу dynamoDB. Пользовательский интерфейс позволяет пользователям искать на основе 4-х атрибутов даты начала, даты окончания, названия события и источника события. Таблица имеет 6 атрибутов, а четыре из них являются ее подмножеством с другими атрибутами, которые являются приоритетом и местоположением. Запрос, как описано выше, делает обязательным поиск на основе вышеуказанных четырех значений. Каков наилучший способ хранения информации в dynamodb, которая поможет мне в запросе на основе даты начала и окончания даты довольно легко. Я думал о создании GSI с hashkey как startdate, rangekey как дата окончания и GSI на остальных двух атрибутах?Каков наилучший способ запроса dynamodb на основе диапазона дат?

Отдел: Таблица My в DynamodB будет иметь 6 атрибутов EventName, Location, StartDate, END Дата, приоритет и источник.

Query будет иметь 4 обязательных атрибута StartDate, EndDate, Source и Event Name.

Спасибо за помощь.

ответ

0

Вы можете использовать больше/меньше, чем операторы сравнения, как часть вашего запроса http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html

Таким образом, вы могли бы попытаться построить таблицу со схемой: (EventName (hashKey), «StartDate-EndDate» (SortKey) , другие атрибуты)

В этом случае ключ сортировки в основном представляет собой комбинацию даты начала и окончания, позволяющую использовать> = (на первой части) и < = (на второй части) ... использование dynamodb ASCII на основе алфавитного упорядочения ... так что давайте предположим, что ваш sortKey выглядит следующим образом: «73644-75223» вы можете использовать> = «73000-» И < = «73000-76000», чтобы получить n.

Кроме того, вы можете создать GSI в своей таблице для каждого из ваших оставшихся атрибутов, которые необходимо прочитать с помощью запроса. Затем вы можете проецировать данные в свой индекс, который вы хотите получить с помощью запроса. В отличие от LSI, запросы от GSI не извлекают атрибуты, которые не проецируются. Помните о дополнительных расходах (чтение/запись), связанных с использованием GSI (и LSI) ... и дополнительной памяти, необходимой для прогнозирования данных ...

Надеюсь, это поможет.

Смежные вопросы