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

Какой тип данных следует использовать для отметки времени в DynamoDB?

Я новичок в DynamoDB. Я хочу создать таблицу, которая использует DeviceID в качестве хэш-ключа, Timestamp как мой ключ диапазона и некоторые данные.

{ DeviceID: 123, Timestamp: "2016-11-11T17:21:07.5272333Z", X: 12, Y: 35 }

В SQL мы можем использовать тип datetime для Timestamp, но в DynamoDB его нет.

  • Какой тип данных я должен использовать? Строка? Количество?
    введите описание изображения здесь

  • Для выбранного типа данных, в какой формат времени я должен писать? ISO (например, 2016-11-11T17: 21: 07.5272333Z) или эпох (например, 1478943038816)?

  • Мне нужно выполнить поиск через таблицу через определенный промежуток времени, например: 1/1/2015 10:00:00 до 31/12/2016 11:00:00 вечера

4b9b3361

Ответ 1

Для даты или временной метки следует использовать Тип данных String.

Вы можете использовать тип данных String для представления даты или временной метки. Один из способов сделать это - использовать строки ISO 8601, как показано в этих примеры:

2016-02-15

2015-12-21T17: 42: 34Z

20150311T122706Z

Тип данных DynamoDB для даты или временной отметки

Да, запросы диапазона поддерживаются, когда дата хранится как String. BETWEEN можно использовать в FilterExpresssion. У меня есть элементы в результате, используя приведенные ниже выражения фильтра.

Экспортировать фильтр без времени: -

FilterExpression : 'createdate between :val1 and :val2',
ExpressionAttributeValues : {
        ':hkey' : year_val,
        ':rkey' : title,
        ":val1" : "2010-01-01",
        ":val2" : "2010-12-31"
    }

Экспортировать фильтр со временем: -

FilterExpression : 'createdate between :val1 and :val2',
    ExpressionAttributeValues : {
        ':hkey' : year_val,
        ':rkey' : title,
        ":val1" : "2010-01-01T00:00:00",
        ":val2" : "2010-12-31T00:00:00"
    }

Значения базы данных: -

Формат 1 - с часовым поясом:

{"Item":{"createdate":{"S":"2010-12-21T17:42:34+00:00"},"title":{"S":"The Big New Movie 2010"},"yearkey":{"N":"2010"},"info":{"M":{"rating":{"N":"0"},"plot":{"S":"Nothing happens at all."}}}}}

Формат 2 - без часовой пояс: -

{"Item":{"createdate":{"S":"2010-12-21T17:42:34Z"},"title":{"S":"The Big New Movie 2010"},"yearkey":{"N":"2010"},"info":{"M":{"rating":{"N":"0"},"plot":{"S":"Nothing happens at all."}}}}}