#amazon-web-services #amazon-dynamodb #dynamodb-queries #amazon-dynamodb-index
#amazon-web-services #amazon-dynamodb #dynamodb-запросы #amazon-dynamodb-index
Вопрос:
Я новичок в DynamoDB, в нашем приложении шаблон доступа будет примерно таким: отображать все недавно созданные заказы. Поэтому я решил сохранить атрибут CreatedDateTime в качестве ключа диапазона при выполнении моделирования данных в DynamoDB. Также я видел много сообщений, рекомендующих сохранять DateTime как строку в формате ISO_8601. Как будет происходить сортировка в DynamoDB. Я хочу, чтобы при получении списка заказов сначала были последние.
Ответ №1:
Желание отображать что-либо недавно созданное является относительно распространенным требованием по множеству различных бизнес-причин.
Чаще всего верно несколько вещей:
- список «самых последних созданных», как правило, представляет собой упорядоченный список фиксированного размера
- это моментальный снимок, и в зависимости от скорости, с которой создается материал, список может быть неточным, даже когда он возвращается
Говоря это, вы можете рассмотреть вторичную систему для хранения самых последних созданных элементов, которая не обязательно совпадает с местом, где вы храните сами элементы.
Подход во многом зависит от скорости, с которой создаются новые элементы. Например, в системе, где каждую секунду создается много новых заказов, получение N самых последних созданных заказов может быть достигнуто с помощью кэша или, возможно, какого-либо потокового процессора.
Однако, если скорость ближе к заказу в час, получение N самых последних заказов может быть лучше реализовано с помощью чего-то вроде отдельной записи в Dynamo, где вы обновляете список по мере создания каждого нового заказа.
Последний подход работает до тех пор, пока вы не достигнете ~ 300 заказов в секунду. Помимо этого, вам нужно что-то другое.