기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon Keyspaces의 Cassandra 쿼리 언어(CQL) 요소
식별자, 상수, 용어 및 데이터 유형을 포함하여 Amazon Keyspaces에서 지원하는 Cassandra 쿼리 언어(CQL) 요소에 대해 알아봅니다.
식별자
식별자(또는 이름)는 테이블, 열, 기타 객체를 식별하는 데 사용됩니다. 식별자를 인용하거나 인용하지 않을 수 있습니다. 다음이 적용됩니다.
identifier ::= unquoted_identifier | quoted_identifier unquoted_identifier ::= re('[a-zA-Z][a-zA-Z0-9_]*') quoted_identifier ::= '"' (any character where " can appear if doubled)+ '"'
상수
다음 상수가 정의됩니다.
constant ::= string | integer | float | boolean | uuid | blob | NULL string ::= '\'' (any character where ' can appear if doubled)+ '\'' '$$' (any character other than '$$') '$$' integer ::= re('-?[0-9]+') float ::= re('-?[0-9]+(\.[0-9]*)?([eE][+-]?[0-9+])?') | NAN | INFINITY boolean ::= TRUE | FALSE uuid ::= hex{8}-hex{4}-hex{4}-hex{4}-hex{12} hex ::= re("[0-9a-fA-F]") blob ::= '0' ('x' | 'X') hex+
용어
용어는 지원되는 값의 종류를 나타냅니다. 용는 다음에 따라 정의됩니다.
term ::= constant | literal | function_call | arithmetic_operation | type_hint | bind_marker literal ::= collection_literal | tuple_literal function_call ::= identifier '(' [ term (',' term)* ] ')' arithmetic_operation ::= '-' term | term ('+' | '-' | '*' | '/' | '%') term
데이터 타입
Amazon Keyspaces는 다음 데이터 형식을 지원합니다.
문자열 형식
데이터 유형 | 설명 |
---|---|
|
ASCII 문자열을 나타냅니다. |
|
UTF-8 인코딩된 문자열을 나타냅니다. |
|
UTF-8 인코딩된 문자열을 나타냅니다( |
숫자형
데이터 유형 | 설명 |
---|---|
|
64비트 서명 길이를 나타냅니다. |
|
64비트 서명 정수 카운터를 나타냅니다. 자세한 내용은 카운터 단원을 참조하십시오. |
|
가변 정밀도 십진수를 나타냅니다. |
|
64비트 IEEE 754 부동 소수점을 나타냅니다. |
|
32비트 IEEE 754 부동 소수점을 나타냅니다. |
|
32비트 서명 정수를 나타냅니다. |
|
임의 정밀도의 정수를 나타냅니다. |
카운터
counter
열에는 64비트 서명 정수가 포함됩니다. 카운터 값은 UPDATE 문을 사용하여 높이거나 내릴 수 있으며 직접적으로 설정할 수 없습니다. 따라서 counter
열은 카운트를 추적하는 데 유용합니다. 예를 들어 카운터를 사용하여 로그 파일의 항목 수 또는 소셜 네트워크에서 게시물 조회수를 추적할 수 있습니다. counter
열에 적용되는 제한은 다음과 같습니다.
-
counter
유형의 열은 테이블primary key
의 일부가 될 수 없습니다. -
counter
유형 열이 하나 이상 포함된 테이블의 경우 해당 테이블의 모든 열이counter
유형이어야 합니다.
카운터 업데이트가 실패하는 경우(예: 시간 초과 또는 Amazon Keyspace와의 연결 끊김) 클라이언트는 카운터 값이 업데이트되었는지 여부를 알 수 없습니다. 업데이트가 다시 시도되면 카운터 값에 대한 업데이트가 다시 적용될 수 있습니다.
Blob 유형
데이터 유형 | 설명 |
---|---|
|
임의의 바이트를 나타냅니다. |
부울 유형
데이터 유형 | 설명 |
---|---|
|
true 또는 false 를 나타냅니다. |
시간 관련 유형
데이터 유형 | 설명 |
---|---|
|
에포크 이후 날짜 및 시간(1970년 1월 1일 00:00:00GMT)을 밀리초 단위로 나타내는 64비트 부호 있는 정수입니다. |
|
버전 1 UUID |
컬렉션 유형
데이터 유형 | 설명 |
---|---|
|
정렬된 리터럴 요소 모음을 나타냅니다. |
|
정렬되지 않은 키-값 페어 모음을 나타냅니다. |
|
하나 이상의 리터럴 요소의 순서가 지정되지 않은 모음을 나타냅니다. |
모음 유형 다음에 다른 데이터 유형(예: TEXT
또는 INT
)을 각괄호로 묶어 집합 열을 선언합니다. 다음 예제와 같이 TEXT
의 SET
이 있는 열을 만들거나 TEXT
의 MAP
과 INT
키-값 쌍을 만들 수 있습니다.
SET <TEXT> MAP <TEXT, INT>
비프로즌 수집을 사용하면 각 개별 수집 요소를 업데이트할 수 있습니다. 클라이언트 측 타임스탬프 및 실시간 도달 시간(TTL) 설정은 개별 요소에 대해 저장됩니다.
수집 유형에 FROZEN
키워드를 사용하면 수집의 값이 변경할 수 없는 단일 값으로 직렬화되며 Amazon Keyspaces는 이를 BLOB
처럼 취급합니다. 이는 프로즌 수집입니다. INSERT
또는 UPDATE
문은 프로즌 수집 전체를 덮어씁니다. 프로즌 수집 내의 개별 요소는 업데이트할 수 없습니다.
클라이언트 측 타임스탬프 및 Time to Live(TTL) 설정은 개별 요소가 아닌 전체 고정 컬렉션에 적용됩니다. Frozen
컬렉션 열은 테이블PRIMARY KEY
의 일부일 수 있습니다.
프로즌 수집을 중첩할 수 있습니다. 예를 들어 다음 예제와 같이 MAP
이 FROZEN
키워드를 사용하는 경우 SET
에서 MAP
를 정의할 수 있습니다.
SET <FROZEN> <MAP <TEXT, INT>>>
Amazon Keyspaces는 기본적으로 최대 5개 수준의 프로즌 수집 중첩을 지원합니다. 자세한 내용은 Amazon Keyspaces 서비스 할당량 단원을 참조하십시오. Apache Cassandra와의 기능적 차이에 대한 자세한 내용은 FROZEN 컬렉션 섹션을 참조하십시오. CQL 구문에 대한 자세한 내용은 CREATE TABLE 및 섹션을 참조하세요ALTER TABLE.
튜플 유형
tuple
데이터 유형은 한정된 리터럴 요소 그룹을 나타냅니다. user defined
type
대신 튜플을 사용할 수 있습니다. 튜플에는 FROZEN
키워드를 사용할 필요가 없습니다. 튜플은 항상 프로즌 상태이고 요소를 개별적으로 업데이트할 수 없기 때문입니다.
기타 유형
데이터 유형 | 설명 |
---|---|
|
IPv4 또는 IPv6 형식의 IP 주소를 나타내는 문자열입니다. |
정적
클러스터링 열이 있는 Amazon Keyspaces 테이블에서 STATIC
키워드를 사용하여 모든 유형의 정적 열을 생성할 수 있습니다.
다음 문은 이에 대한 예입니다.
my_column INT STATIC
정적 열 작업에 대한 자세한 내용은 섹션을 참조하세요Amazon Keyspaces의 정적 열에 대한 용량 소비 추정.
JSON Amazon Keyspaces 데이터 형식 인코딩
Amazon Keyspaces는 Apache Cassandra와 동일한 JSON 데이터 유형 매핑을 제공합니다. 다음 표는 Amazon Keyspaces가 INSERT JSON
문에서 허용하는 데이터 유형과 Amazon Keyspaces가 SELECT JSON
문과 함께 데이터를 반환할 때 사용하는 데이터 유형을 설명합니다.
float
, int
, UUID
, date
등의 단일 필드 데이터 유형의 경우 데이터를 string
로 삽입할 수도 있습니다. , 및 와 같은 복합 데이터 유형 tuple
map
및 컬렉션의 경우 데이터를 또는 인코딩JSON된 로 삽입list
할 수도 있습니다JSON string
.
JSON 데이터 유형 | INSERT JSON 문에서 허용되는 데이터 유형 |
SELECT JSON 문에서 반환되는 데이터 유형 |
참고 |
---|---|---|---|
|
string |
string |
JSON 문자 이스케이프 를 사용합니다 |
|
integer, string |
integer |
문자열은 유효한 64비트 정수여야 합니다. |
|
string |
string |
문자열은 |
|
boolean, string |
boolean |
문자열은 |
|
string |
string |
형식의 날짜 |
|
integer, float, string |
float |
클라이언트 측 디코더에서 32비트 또는 64비트 IEEE-754 부동 소수점 정밀도를 초과할 수 있습니다. |
|
integer, float, string |
float |
문자열은 유효한 정수 또는 부동 소수점이어야 합니다. |
|
integer, float, string |
float |
문자열은 유효한 정수 또는 부동 소수점이어야 합니다. |
|
string |
string |
IPv4 또는 IPv6 주소. |
|
integer, string |
integer |
문자열은 유효한 32비트 정수여야 합니다. |
|
list, string |
list |
기본 JSON 목록 표현을 사용합니다. |
|
map, string |
map |
기본 JSON 맵 표현을 사용합니다. |
|
integer, string |
integer |
문자열은 유효한 16비트 정수여야 합니다. |
|
list, string |
list |
기본 JSON 목록 표현을 사용합니다. |
|
string |
string |
JSON 문자 이스케이프를 사용합니다 |
|
string |
string |
시간대 형식 |
|
integer, string |
string |
타임스탬프입니다. 문자열 상수를 사용하면 타임스탬프를 날짜로 저장할 수 있습니다. |
|
string |
string |
유형 1 UUID. UUID 형식constants은 섹션을 참조하세요. |
|
integer, string |
integer |
문자열은 유효한 8비트 정수여야 합니다. |
|
list, string |
list |
기본 JSON 목록 표현을 사용합니다. |
|
string |
string |
UUID 형식constants은 섹션을 참조하세요. |
|
string |
string |
JSON 문자 이스케이프를 사용합니다 |
|
integer, string |
integer |
가변 길이. 클라이언트 측 디코더에서 32비트 또는 64비트 정수가 오버플로될 수 있습니다. |