DateTime в виде строки в DynamoDB, как это будет работать, сохраняя атрибут DateTime в качестве ключа диапазона?

#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:

Желание отображать что-либо недавно созданное является относительно распространенным требованием по множеству различных бизнес-причин.

Чаще всего верно несколько вещей:

  1. список «самых последних созданных», как правило, представляет собой упорядоченный список фиксированного размера
  2. это моментальный снимок, и в зависимости от скорости, с которой создается материал, список может быть неточным, даже когда он возвращается

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

Подход во многом зависит от скорости, с которой создаются новые элементы. Например, в системе, где каждую секунду создается много новых заказов, получение N самых последних созданных заказов может быть достигнуто с помощью кэша или, возможно, какого-либо потокового процессора.

Однако, если скорость ближе к заказу в час, получение N самых последних заказов может быть лучше реализовано с помощью чего-то вроде отдельной записи в Dynamo, где вы обновляете список по мере создания каждого нового заказа.

Последний подход работает до тех пор, пока вы не достигнете ~ 300 заказов в секунду. Помимо этого, вам нужно что-то другое.