2017년 8월 26일 토요일

[Cassandra 레퍼런스] [Data Definition] Working with durations

이 문서는 개인적인 목적이나 배포하기 위해서 복사할 수 있다. 출력물이든 디지털 문서든 각 복사본에 어떤 비용도 청구할 수 없고 모든 복사본에는 이 카피라이트 문구가 있어야 한다.





duration 유형의 값은 가변 길이의 3 개의 부호있는 정수로 인코딩됩니다.
첫 번째 정수는 월을 나타내며 두 ​​번째 숫자는 일을 나타내며 세 번째 정수는 나노초를 나타냅니다.
이는 한 달의 일 수가 변경 될 수 있고 일광 절약 시간에 따라 하루가 23 또는 25 시간이 될 수 있기 때문입니다.
내부적으로 월 및 일 수는 32 비트 정수로 디코딩되지만 나노초 수는 64 비트 정수로 디코딩됩니다.

duration은 다음과 같이 입력 할 수 있습니다 :

1. 12h30m 처럼 (수량 + 단위)로 표시될 수 있는 것은 아래와 같습니다 :

y: years (12 months)
mo: months (1 month)
w: weeks (7 days)
d: days (1 day)
h: hours (3,600,000,000,000 nanoseconds)
m: minutes (60,000,000,000 nanoseconds)
s: seconds (1,000,000,000 nanoseconds)
ms: milliseconds (1,000,000 nanoseconds)
us or µs : microseconds (1000 nanoseconds)
ns: nanoseconds (1 nanosecond)

2. ISO 8601 format: P[n]Y[n]M[n]DT[n]H[n]M[n]S or P[n]W

3. ISO 8601 alternative format: P[YYYY]-[MM]-[DD]T[hh]:[mm]:[ss]

예를 들어 :

INSERT INTO RiderResults (rider, race, result) VALUES ('Christopher Froome', 'Tour de France', 89h4m48s);
INSERT INTO RiderResults (rider, race, result) VALUES ('BARDET Romain', 'Tour de France', PT89H8M53S);
INSERT INTO RiderResults (rider, race, result) VALUES ('QUINTANA Nairo', 'Tour de France', P0000-00-00T89:09:09);

테이블의 PRIMARY KEY에는 duration column을 사용할 수 없습니다.
이러한 제한은 duration은 정렬할 수 없기 때문에 발생합니다.
1mo가 날짜 컨텍스트없이 29d보다 큰 지를 아는 것은 실제로 불가능합니다.

1d duration은 일광 절약 시간을 지원할 수 있도록 지속 시간 유형이 작성되었으므로 24h duration과 같지 않습니다.

출처 : http://cassandra.apache.org/doc/latest/cql/types.html

댓글 없음 :

댓글 쓰기