Подтвердить что ты не робот

Самый эффективный тип даты DynamoDB

Я вижу, что DynamoDB по существу ограничен тремя типами данных: String, Number и Binary. Кажется, это оставляет два варианта хранения даты или метки времени:

  • Строка формата даты и времени 8601 или отметки времени Unix
  • Число временной метки Unix

Мне нужно будет "сортировать" результаты, используя эту дату/временную метку в качестве ключа диапазона и используя scanIndexForward. Можно ли сказать, какой подход будет более эффективным?

4b9b3361

Ответ 1

Я не знаю, что это обязательно более эффективно, но у нас был хороший успех, используя временную метку Unix в качестве ключей диапазона. Это было быстро (до 20 мс, иногда менее 10 мс) для запросов и позволяет нам сортировать "от раннего к последнему" или "от самого раннего к раннему" с использованием флага scanIndexForward.

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

Ответ 2

Я только что сделал DescribeTable на одной из моих таблиц DynamoDB и заметил, что DynamoDB сам хранит CreationDateTime таблицы в качестве числа с плавающей запятой UNIX. Думаю, они это сделали по какой-то причине.