19

DynamoDB를 처음 사용했습니다. DeviceID를 해시 키로 사용하고 타임 스탬프를 내 범위 키로 사용하고 일부 데이터를 사용하는 테이블을 만들고 싶습니다.DynamoDB에서 타임 스탬프로 사용할 데이터 유형은 무엇입니까?

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

SQL에서는 Timestamp에 datetime 유형을 사용할 수 있지만 DynamoDB에는 아무 것도 없습니다.

  1. 어떤 데이터 형식을 사용해야합니까? 끈? 번호?
    enter image description here

  2. 선택한 데이터 형식의 경우 어떤 종류의 타임 스탬프 형식을 써야합니까? ISO 형식 (예 : 2016-11-11T17 : 21 : 07.5272333Z) 또는 시간 (예 : 1478943038816)? 2015년 1월 1일 오전 10시 0분 0초 오후 11시 0분 0초

+0

http://stackoverflow.com/questions/27894393/is-it-possible-to-save-datetime-to-dynamodb –

+2

에포크 시간/형식으로 숫자를 사용합니다. 기본적으로 customer_id –

+0

문자열 및 숫자 데이터 유형을 사용하여 범위 검색에도 사용합니다.ISO8601 형식을 저장할 때의 문자열 및 에포크 시간을 저장할 때의 번호. 자세한 내용은 여기에 있습니다 : https://www.abhayachauhan.com/2017/12/how-to-store-dates-or-timestamps-in-dynamodb/ –

답변

21

31/12/2016까지 :

  • 나는 시간의 범위, 예를 통해 테이블을 검색 할 필요가 날짜 또는 시간 소인에 문자열 데이터 형식을 사용해야합니다.

    문자열 데이터 형식을 사용하여 날짜 또는 타임 스탬프를 나타낼 수 있습니다.

    2016년 2월 15일

    2015-12-21T17 : 42 : 34Z

    20150311T122706Z

    이러한 실시 예에 도시 된 바와 같이 이렇게 한가지 방법은, ISO 8601 문자열을 사용하는 것 날짜를 문자열로 저장 될 때

    DynamoDB Data type for Date or Timestamp

    은 예, 범위 쿼리가 지원됩니다. BETWEEN은 (는) FilterExpresssion에서 사용할 수 있습니다. 아래 필터 표현식을 사용하여 결과에 항목이 있습니다. 시간이없는

    FilterExpression : - 시간

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

    FilterExpression : -

    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."}}}}} 
    
  • +0

    그러나 문자열 값으로 저장하면 날짜 범위 검색을 할 수 있습니까? –

    +0

    @notionquest 나중에 문자열을 사용하여 날짜 및 시간 범위 검색을 수행 할 수 있습니까? – Dennis

    +0

    @MarkB - 날짜를 String으로 저장하면 범위 쿼리가 지원됩니다. 예를 통해 답변을 업데이트했습니다. Between 연산자를 사용하여 데이터를 필터링 할 수 있습니다. – notionquest

    관련 문제