Диапазон запроса по дате поиска в облаке - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть таблица DynamodB, в которой хранится эпоха creation_date в строковом формате.Эта дата не является ни хеш-ключом, ни ключом сортировки.Конечная цель - запрос create_date для диапазона, т.е. мне нужны все идентификаторы в заданном временном диапазоне.

Схема таблицы: id, version, creation_date, info.

id - это ключ хеша, а версия - ключ сортировки.

Я думал о создании домена cloudsearch и связал его с таблицей DynamodB.Можно ли использовать запрос диапазона в cloudsearch с использованием Java, если дата в строковом формате?Если да, то как?

1 Ответ

0 голосов
/ 28 февраля 2019

Вот как вы можете сделать это в DynamoDB, используя GSI с хэш-ключом creation_y_m и ключом диапазона GSI creation_date.

Когда вы запрашиваете диапазон дат создания,вам нужно немного поработать с датами, чтобы выяснить все месяцы между двумя датами, но затем вы можете запросить GSI с помощью ключевого выражения условия, подобного этому.

creation_y_m = 2019-02 AND creation_date BETWEEN 2019-02-05T12:00.00Z AND 2019-02-18T06:00:00Z

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

Возможно, вам потребуется заполнить поле creation_y_m, но это довольно простоСделайте это, отсканировав свою таблицу и обновив каждый элемент, чтобы он имел новый атрибут.

Конечно, существует множество вариантов этого.Вы можете настроить, насколько гранулирован ваш хэш-ключ (может быть, вам нужен только год, а может быть, год-месяц-день).Вы можете использовать время эпохи вместо строк ISO 8601.

...