Amazon Keyspaces의 Cassandra 쿼리 언어(CQL) 요소 - Amazon Keyspaces(Apache Cassandra용)

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

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

ASCII 문자열을 나타냅니다.

text

UTF-8 인코딩된 문자열을 나타냅니다.

varchar

UTF-8 인코딩된 문자열을 나타냅니다(varchar 는 의 별칭임text).

숫자형

데이터 유형 설명

bigint

64비트 서명 길이를 나타냅니다.

counter

64비트 서명 정수 카운터를 나타냅니다. 자세한 내용은 카운터 단원을 참조하십시오.

decimal

가변 정밀도 십진수를 나타냅니다.

double

64비트 IEEE 754 부동 소수점을 나타냅니다.

float

32비트 IEEE 754 부동 소수점을 나타냅니다.

int

32비트 서명 정수를 나타냅니다.

varint

임의 정밀도의 정수를 나타냅니다.

카운터

counter 열에는 64비트 서명 정수가 포함됩니다. 카운터 값은 UPDATE 문을 사용하여 높이거나 내릴 수 있으며 직접적으로 설정할 수 없습니다. 따라서 counter 열은 카운트를 추적하는 데 유용합니다. 예를 들어 카운터를 사용하여 로그 파일의 항목 수 또는 소셜 네트워크에서 게시물 조회수를 추적할 수 있습니다. counter 열에 적용되는 제한은 다음과 같습니다.

  • counter 유형의 열은 테이블 primary key의 일부가 될 수 없습니다.

  • counter 유형 열이 하나 이상 포함된 테이블의 경우 해당 테이블의 모든 열이 counter 유형이어야 합니다.

카운터 업데이트가 실패하는 경우(예: 시간 초과 또는 Amazon Keyspace와의 연결 끊김) 클라이언트는 카운터 값이 업데이트되었는지 여부를 알 수 없습니다. 업데이트가 다시 시도되면 카운터 값에 대한 업데이트가 다시 적용될 수 있습니다.

Blob 유형

데이터 유형 설명

blob

임의의 바이트를 나타냅니다.

부울 유형

데이터 유형 설명

boolean

true 또는 false를 나타냅니다.

시간 관련 유형

데이터 유형 설명

timestamp

에포크 이후 날짜 및 시간(1970년 1월 1일 00:00:00GMT)을 밀리초 단위로 나타내는 64비트 부호 있는 정수입니다.

timeuuid

버전 1 UUID을 나타냅니다.

컬렉션 유형

데이터 유형 설명

list

정렬된 리터럴 요소 모음을 나타냅니다.

map

정렬되지 않은 키-값 페어 모음을 나타냅니다.

set

하나 이상의 리터럴 요소의 순서가 지정되지 않은 모음을 나타냅니다.

모음 유형 다음에 다른 데이터 유형(예: TEXT 또는 INT)을 각괄호로 묶어 집합 열을 선언합니다. 다음 예제와 같이 TEXTSET이 있는 열을 만들거나 TEXTMAPINT 키-값 쌍을 만들 수 있습니다.

SET <TEXT> MAP <TEXT, INT>

비프로즌 수집을 사용하면 각 개별 수집 요소를 업데이트할 수 있습니다. 클라이언트 측 타임스탬프 및 실시간 도달 시간(TTL) 설정은 개별 요소에 대해 저장됩니다.

수집 유형에 FROZEN 키워드를 사용하면 수집의 값이 변경할 수 없는 단일 값으로 직렬화되며 Amazon Keyspaces는 이를 BLOB처럼 취급합니다. 이는 프로즌 수집입니다. INSERT 또는 UPDATE 문은 프로즌 수집 전체를 덮어씁니다. 프로즌 수집 내의 개별 요소는 업데이트할 수 없습니다.

클라이언트 측 타임스탬프 및 Time to Live(TTL) 설정은 개별 요소가 아닌 전체 고정 컬렉션에 적용됩니다. Frozen 컬렉션 열은 테이블PRIMARY KEY의 일부일 수 있습니다.

프로즌 수집을 중첩할 수 있습니다. 예를 들어 다음 예제와 같이 MAPFROZEN 키워드를 사용하는 경우 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 키워드를 사용할 필요가 없습니다. 튜플은 항상 프로즌 상태이고 요소를 개별적으로 업데이트할 수 없기 때문입니다.

기타 유형

데이터 유형 설명

inet

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 문에서 반환되는 데이터 유형 참고

ascii

string string

JSON 문자 이스케이프 를 사용합니다\u.

bigint

integer, string integer

문자열은 유효한 64비트 정수여야 합니다.

blob

string string

문자열은 0x 다음에 16진수의 짝수로 시작해야 합니다.

boolean

boolean, string boolean

문자열은 true 또는 false여야 합니다.

date

string string

형식의 날짜YYYY-MM-DD, 시간대UTC.

decimal

integer, float, string float

클라이언트 측 디코더에서 32비트 또는 64비트 IEEE-754 부동 소수점 정밀도를 초과할 수 있습니다.

double

integer, float, string float

문자열은 유효한 정수 또는 부동 소수점이어야 합니다.

float

integer, float, string float

문자열은 유효한 정수 또는 부동 소수점이어야 합니다.

inet

string string

IPv4 또는 IPv6 주소.

int

integer, string integer

문자열은 유효한 32비트 정수여야 합니다.

list

list, string list

기본 JSON 목록 표현을 사용합니다.

map

map, string map

기본 JSON 맵 표현을 사용합니다.

smallint

integer, string integer

문자열은 유효한 16비트 정수여야 합니다.

set

list, string list

기본 JSON 목록 표현을 사용합니다.

text

string string

JSON 문자 이스케이프를 사용합니다\u.

time

string string

시간대 형식HH-MM-SS[.fffffffff].

timestamp

integer, string string

타임스탬프입니다. 문자열 상수를 사용하면 타임스탬프를 날짜로 저장할 수 있습니다. YYYY-MM-DD HH:MM:SS.SSS 형식의 날짜 스탬프가 반환됩니다.

timeuuid

string string

유형 1 UUID. UUID 형식constants은 섹션을 참조하세요.

tinyint

integer, string integer

문자열은 유효한 8비트 정수여야 합니다.

tuple

list, string list

기본 JSON 목록 표현을 사용합니다.

uuid

string string

UUID 형식constants은 섹션을 참조하세요.

varchar

string string

JSON 문자 이스케이프를 사용합니다\u.

varint

integer, string integer

가변 길이. 클라이언트 측 디코더에서 32비트 또는 64비트 정수가 오버플로될 수 있습니다.