База Динамо GSI - PullRequest
       16

База Динамо GSI

0 голосов
/ 24 марта 2020

В настоящее время у меня проблема с решением проблемы с динамо-базой данных.

Моя динамо-база данных отслеживает изменения в данных. Таким образом, ключ раздела определяет, какие данные я изменяю

одна строка выглядит примерно так

partition key: servicename#resource#resource_id#region 

sortkey: current_time

changelogs: map of changelog (basically an array of changelog)

changer: who changed it

; Он отлично справляется с запросом одного указанного c изменения ресурса; однако, если я хочу, скажем, запрос «Я хочу увидеть последние 30 минут изменений в этом имени_службы # resource без указания идентификатора ресурса . Сейчас у меня есть только метод сканирования под рукой .. И я могу» Я не использую сканирование из-за большого количества данных. Я открыт для всех рекомендаций.

1 Ответ

0 голосов
/ 24 марта 2020

Ваш субъект упоминает ответ ... даже если ваша публикация этого не делает.

Создайте глобальный вторичный индекс (GSI), указав дату или часть даты в качестве ключа ha sh и время или оставшаяся дата часть + время в качестве ключа сортировки. Если у вас создается большое количество данных, вы можете включить Hour в ключ ha sh.

HK             SK
YYYY-MM-DD-HH  :MM:SS.00000
YYYY-MM-DD     HH:MM:SS.00000
YYYY-MM        DD-HH:MM:SS.0000
...