Строки вводятся с жестко закодированным хеш-ключом, но с другим ключом диапазона - PullRequest
1 голос
/ 11 июля 2019

Я пытаюсь создать приложение для бронирования автомобиля. Пользователи могут бронировать автомобили, расположенные вокруг многих офисов.

Интересно, смогу ли я поместить ВСЕ заказы в одну жестко закодированную хеш-клавишу "Заказы", но с уникальным ключом диапазона.

Я хочу иметь ссылку на ВСЕ бронирования, чтобы "Супер Администратор" мог зайти и просмотреть все. Заказы должны храниться в течение 10 лет, поэтому я предполагаю, что у меня будет около 50 миллионов записей под одним и тем же хэш-ключом, но с разными уникальными диапазонными ключами. Поиск должен быть сделан на основе трех разных критерий даты, местный вторичный индекс 1-3.

Думая что-то вроде этого (включая только определенную "сущность")

            Hash Key    Range Key   LSI-1       LSI-2       LSI-3       Other Attributes...
            -------------------------------------------------------------------------------
Bookings    "Bookings"  UUID        CreatedAt   BookedFrom  BookedTo    ...........
                        UUID        CreatedAt   BookedFrom  BookedTo    ...........
                        UUID        CreatedAt   BookedFrom  BookedTo    ...........
                        UUID        CreatedAt   BookedFrom  BookedTo    ...........
                        UUID        CreatedAt   BookedFrom  BookedTo    ...........
                        UUID        CreatedAt   BookedFrom  BookedTo    ...........

Это как это должно быть сделано? Будет ли это вызывать Горячие точки / Горячие разделы? Благодарен за любые советы.

1 Ответ

0 голосов
/ 15 июля 2019

Я бы сказал, нет, это не так, как это должно быть сделано ...

Во-первых, DDB может хранить только 10 ГБ в одном разделе, а для 50-метровых строк они должны быть очень маленькими, чтобы уместиться.

Я бы порекомендовал vehicleID (UUID или VIN или STOCK #) в качестве хеш-ключа, а bookingID (UUID или Timestamp или ???) в качестве ключа сортировки.

Чтобы показать все заказы, вам нужно выполнить Query () для каждого идентификатора транспортного средства, но ваше приложение может выполнять параллельный запрос. Опционально, Scan () всегда просматривает каждый раздел.

Вы можете включить запись с hashkey = "VEHICLES", которая содержит список идентификаторов vechicleID, если у вас больше нет места для сохранения списка.

Кроме того, запись с vechicleID и sortley = "INFO", например, может использоваться для хранения сведений об автомобиле.

Но вы не предоставили достаточно информации для разработки DDB-решения.

С RDB вы должны знать, что вы планируете хранить. С DDB вам не нужно точно знать, что вы планируете хранить, но вам нужно точно знать, каким образом эти данные должны быть доступны.

...