기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
아마존 키스페이스의 DDL 명령문 (데이터 정의 언어)
데이터 정의 언어 (DDL) 는 Amazon Keyspaces (Apache Cassandra용) 에서 키스페이스 및 테이블과 같은 데이터 구조를 관리하는 데 사용하는 카산드라 쿼리 언어 (CQL) 문 세트입니다. DDL을 사용하여 이러한 데이터 구조를 생성하고, 생성 후 수정하고, 더 이상 사용하지 않을 때는 제거할 수 있습니다. Amazon Keyspace는 DDL 작업을 비동기적으로 수행합니다. 비동기 작업이 완료되었는지 확인하는 방법에 대한 자세한 내용은 을 참조하십시오. 키스페이스 및 테이블의 비동기 생성 및 삭제
지원되는 DDL 문은 다음과 같습니다.
Keyspaces
키스페이스는 하나 이상의 애플리케이션과 관련된 관련 테이블을 그룹화합니다. 관계형 데이터베이스 관리 시스템 (RDBMS) 의 관점에서 키스페이스는 데이터베이스, 테이블스페이스 또는 유사한 구조와 거의 비슷합니다.
참고
Apache Cassandra에서 키스페이스는 여러 스토리지 노드 간에 데이터가 복제되는 방식을 결정합니다. 하지만 Amazon Keyspaces는 완전 관리형 서비스이므로 스토리지 계층의 세부 정보가 사용자를 대신하여 관리됩니다. 이러한 이유로 Amazon Keyspace의 키스페이스는 논리적 구조일 뿐이며 기본 물리적 스토리지와는 관련이 없습니다.
Amazon Keyspaces 키스페이스의 할당량 한도 및 제약 조건에 대한 자세한 내용은 을 참조하십시오. 아마존 키스페이스 할당량 (아파치 카산드라용)
키스페이스 생성
CREATE KEYSPACE
명령문을 사용하여 새 키스페이스를 생성합니다.
구문
create_keyspace_statement ::= CREATE KEYSPACE [ IF NOT EXISTS ] keyspace_name WITH options
여기서 각 항목은 다음과 같습니다.
-
keyspace_name
생성될 키스페이스의 이름입니다. -
옵션은 다음 중 하나 이상입니다.
-
REPLICATION
— 키스페이스의 복제 전략을 나타내는 맵:-
SingleRegionStrategy
— 단일 리전 키스페이스용. (필수) -
NetworkTopologyStrategy
— 최소 2개에서 최대 6개까지 AWS 리전 지정하십시오. 각 지역의 복제 인자는 3입니다. (선택 사항)
-
-
DURABLE_WRITES
— Amazon Keyspace에 대한 쓰기는 항상 내구성이 있으므로 이 옵션은 필요하지 않습니다. 하지만 지정된 경우 값은 다음과 같아야 합니다.true
-
TAGS
— 리소스를 생성할 때 리소스에 첨부할 키-값 쌍 태그 목록입니다. (선택 사항)
-
예
다음과 같이 키스페이스를 생성합니다.
CREATE KEYSPACE
my_keyspace
WITH REPLICATION = {'class': 'SingleRegionStrategy'} and TAGS ={'key1':'val1', 'key2':'val2'} ;
다중 지역 키스페이스를 만들려면 최소 2개에서 최대 6개까지 NetworkTopologyStrategy
지정하고 포함해야 합니다. AWS 리전 각 지역의 복제 인자는 3입니다.
CREATE KEYSPACE
my_keyspace
WITH REPLICATION = {'class':'NetworkTopologyStrategy', 'us-east-1':'3', 'ap-southeast-1':'3','eu-west-1':'3'};
키스페이스 변경
를 사용하여 ALTER KEYSPACE
키스페이스에 태그를 추가하거나 키스페이스에서 태그를 제거할 수 있습니다.
구문
alter_keyspace_statement ::= ALTER KEYSPACE keyspace_name [[ADD | DROP] TAGS
여기서 각 항목은 다음과 같습니다.
-
keyspace_name
변경할 키스페이스의 이름입니다. -
TAGS
— 키스페이스에서 추가 또는 제거할 키-값 쌍 태그 목록입니다.
예
다음과 같이 키스페이스를 변경합니다.
ALTER KEYSPACE "myGSGKeyspace" ADD TAGS {'key1':'val1', 'key2':'val2'};
키스페이스 삭제
DROP KEYSPACE
명령문을 사용하여 테이블과 같은 모든 내용을 포함한 키스페이스를 제거합니다.
구문
drop_keyspace_statement ::= DROP KEYSPACE [ IF EXISTS ] keyspace_name
여기서 각 항목은 다음과 같습니다.
-
keyspace_name은 삭제할 키스페이스의 이름입니다.
예
DROP KEYSPACE "myGSGKeyspace";
테이블
테이블은 Amazon Keyspace의 기본 데이터 구조입니다. 테이블의 데이터는 행과 열로 구성됩니다. 이러한 열의 하위 집합은 파티션 키 지정을 통해 파티셔닝 (및 궁극적으로는 데이터 배치) 을 결정하는 데 사용됩니다.
또 다른 열 집합을 클러스터링 열로 정의할 수 있습니다. 즉, 이러한 열 집합을 쿼리 실행 시 조건자로 사용할 수 있습니다.
기본적으로 온디맨드 처리 용량을 갖춘 새 테이블이 생성됩니다. 새 테이블과 기존 테이블의 용량 모드를 변경할 수 있습니다. 읽기/쓰기 용량 처리량 모드에 대한 자세한 내용은 을 참조하십시오. Amazon Keyspaces 내 읽기/쓰기 용량 모드
Amazon Keyspaces 테이블의 할당량 한도 및 제약 조건에 대한 자세한 내용은 을 참조하십시오. 아마존 키스페이스 할당량 (아파치 카산드라용)
CREATE TABLE
CREATE TABLE
명령문을 사용하여 새 테이블을 생성합니다.
구문
create_table_statement ::= CREATE TABLE [ IF NOT EXISTS ] table_name '(' column_definition ( ',' column_definition )* [ ',' PRIMARY KEY '(' primary_key ')' ] ')' [ WITH table_options ] column_definition ::= column_name cql_type [ STATIC ][ PRIMARY KEY] primary_key ::= partition_key [ ',' clustering_columns ] partition_key ::= column_name | '(' column_name ( ',' column_name )* ')' clustering_columns ::= column_name ( ',' column_name )* table_options ::= [table_options] | CLUSTERING ORDER BY '(' clustering_order ')' [ AND table_options ] | options | CUSTOM_PROPERTIES | WITH TAGS | WITH default_time_to_live clustering_order ::= column_name (ASC | DESC) ( ',' column_name (ASC | DESC) )*
여기서 각 항목은 다음과 같습니다.
-
table_name
생성될 테이블의 이름입니다. -
column_definition
다음과 같이 구성됩니다.-
column_name
— 컬럼의 이름. -
cql_type
— 아마존 키스페이스 데이터 유형 (참조데이터 유형). STATIC
— 이 열을 정적 열로 지정합니다. 정적 열에는 동일한 파티션의 모든 행이 공유하는 값이 저장됩니다.-
PRIMARY KEY
— 이 열을 테이블의 기본 키로 지정합니다.
-
-
primary_key
다음과 같이 구성됩니다.-
partition_key
-
clustering_columns
-
-
partition_key
:-
파티션 키는 단일 열이거나 둘 이상의 열로 구성된 복합 값일 수 있습니다. 기본 키의 파티션 키 부분이 필요하며 Amazon Keyspaces가 데이터를 저장하는 방법을 결정합니다.
-
-
clustering_columns
:-
기본 키의 선택적 클러스터링 열 부분에 따라 각 파티션 내에서 데이터가 클러스터링되고 정렬되는 방식이 결정됩니다.
-
-
table_options
다음과 같이 구성됩니다.-
CLUSTERING ORDER BY
— 테이블의 기본 클러스터링 순서는ASC
(오름차순) 정렬 방향의 클러스터링 키로 구성됩니다. 기본 정렬 동작을 재정의하도록 지정하십시오. -
CUSTOM_PROPERTIES
— Amazon Keyspace에만 적용되는 설정 맵.-
capacity_mode
: 테이블의 읽기/쓰기 처리 용량 모드를 지정합니다. 옵션은throughput_mode:PAY_PER_REQUEST
및throughput_mode:PROVISIONED
입니다. 프로비저닝된 용량 모드에는 및 가 입력으로 필요합니다read_capacity_units
.write_capacity_units
기본값은throughput_mode:PAY_PER_REQUEST
입니다. -
client_side_timestamps
: 테이블에 대해 클라이언트측 타임스탬프를 활성화할지 비활성화할지 지정합니다. 옵션은{'status': 'enabled'}
및{'status': 'disabled'}
입니다. 지정되지 않은 경우 기본값은 입니다.status:disabled
테이블에 대해 클라이언트측 타임스탬프를 활성화한 후에는 이 설정을 비활성화할 수 없습니다. -
encryption_specification
: 저장 중 암호화의 암호화 옵션을 지정합니다. 지정되지 않은 경우 기본값은 입니다encryption_type:AWS_OWNED_KMS_KEY
. 고객 관리 키 암호화 옵션을 사용하려면 Amazon 리소스 이름 (ARN) 형식의 AWS KMS 키를 입력해야 합니다::.kms_key_identifier:ARN
kms_key_identifier:ARN
-
point_in_time_recovery
: 테이블에 대한 point-in-time 복원 활성화 또는 비활성화 여부를 지정합니다. 옵션은status:enabled
및status:disabled
입니다. 지정되지 않은 경우 기본값은 입니다status:disabled
. -
ttl
: 테이블의 Time to Live 사용자 지정 설정을 활성화합니다. 활성화하려면 를 사용하십시오status:enabled
. 기본값은status:disabled
입니다.ttl
가 활성화된 후에는 테이블에 대해 비활성화할 수 없습니다.
-
-
TAGS
— 리소스 생성 시 리소스에 첨부할 키-값 쌍 태그 목록입니다. default_time_to_live
— 테이블의 기본 Time to Live 설정 (초 단위).
-
-
clustering_order
다음과 같이 구성됩니다.-
column_name
— 컬럼의 이름. -
ASC | DESC
— 오름차순 (ASC
) 또는 내림순 () 순서 수정자를 설정합니다.DESC
지정되지 않은 경우 기본 순서는 ASC입니다.
-
예
CREATE TABLE IF NOT EXISTS
"my_keyspace".my_table
( id text, name text, region text, division text, project text, role text, pay_scale int, vacation_hrs float, manager_id text, PRIMARY KEY (id,division)) WITH CUSTOM_PROPERTIES={ 'capacity_mode':{ 'throughput_mode': 'PROVISIONED', 'read_capacity_units': 10, 'write_capacity_units': 20 }, 'point_in_time_recovery':{'status': 'enabled'}, 'encryption_specification':{ 'encryption_type': 'CUSTOMER_MANAGED_KMS_KEY', 'kms_key_identifier':'arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111
' } } AND CLUSTERING ORDER BY (division ASC) AND TAGS={'key1':'val1', 'key2':'val2'} AND default_time_to_live = 3024000;
클러스터링 열을 사용하는 테이블의 경우 테이블 정의에서 클러스터링이 아닌 열을 정적으로 선언할 수 있습니다. 정적 열에 대한 자세한 내용은 을 참조하십시오. Amazon 키스페이스의 정적 컬럼
예
CREATE TABLE
"my_keyspace".my_table
( id int, name text, region text, division text, project text STATIC, PRIMARY KEY (id,division));
ALTER TABLE
ALTER TABLE
명령문을 사용하여 새 열을 추가하거나, 태그를 추가하거나, 테이블의 사용자 지정 속성을 변경할 수 있습니다.
구문
alter_table_statement ::= ALTER TABLE table_name [ ADD ( column_definition | column_definition_list) ] [[ADD | DROP] TAGS {'key1':'val1', 'key2':'val2'}] [ WITH table_options [ , ... ] ] ; column_definition ::= column_name cql_type
여기서 각 항목은 다음과 같습니다.
-
table_name
변경할 테이블의 이름입니다. -
column_definition
추가할 열 이름 및 데이터 유형입니다. -
column_definition_list
괄호 안에 있는 쉼표로 구분된 열 목록입니다. -
TAGS
리소스에 첨부할 키-값 쌍 태그의 목록입니다. default_time_to_live
: 테이블의 기본 Time to Live 설정 (초 단위).-
table_options
다음과 같이 구성됩니다.-
CUSTOM_PROPERTIES
— Amazon Keyspace와 관련된 설정 맵.-
capacity_mode
: 테이블의 읽기/쓰기 처리 용량 모드를 지정합니다. 옵션은throughput_mode:PAY_PER_REQUEST
및throughput_mode:PROVISIONED
입니다. 프로비저닝된 용량 모드에는 및 가 입력으로 필요합니다read_capacity_units
.write_capacity_units
기본값은throughput_mode:PAY_PER_REQUEST
입니다. -
client_side_timestamps
: 테이블에 대해 클라이언트측 타임스탬프를 활성화할지 비활성화할지 지정합니다. 옵션은{'status': 'enabled'}
및{'status': 'disabled'}
입니다. 지정되지 않은 경우 기본값은 입니다.status:disabled
테이블에 대해 클라이언트측 타임스탬프를 활성화한 후에는 이 설정을 비활성화할 수 없습니다. -
encryption_specification
: 저장 중 암호화를 위한 암호화 옵션을 지정합니다. 옵션은encryption_type:AWS_OWNED_KMS_KEY
및encryption_type:CUSTOMER_MANAGED_KMS_KEY
입니다. 고객 관리 키 암호화 옵션을 사용하려면 Amazon 리소스 이름 (ARN) 형식의 AWS KMS 키를 입력해야 합니다.kms_key_identifier:ARN
-
point_in_time_recovery
: 테이블에 대한 point-in-time 복원 활성화 또는 비활성화 여부를 지정합니다. 옵션은status:enabled
및status:disabled
입니다. 기본값은status:disabled
입니다. -
ttl
: 테이블의 Time to Live 사용자 지정 설정을 활성화합니다. 활성화하려면 를 사용하십시오status:enabled
. 기본값은status:disabled
입니다.ttl
가 활성화된 후에는 테이블에 대해 비활성화할 수 없습니다.
-
-
참고
ALTER TABLE을 사용하면 단일 사용자 지정 속성만 변경할 수 있습니다. 동일한 명령문에 ALTER TABLE 명령을 두 개 이상 조합할 수 없습니다.
예
다음 명령문은 기존 테이블에 열을 추가하는 방법을 보여줍니다.
ALTER TABLE
mykeyspace.mytable
ADD (ID int);
테이블의 용량 모드를 변경하고 읽기 및 쓰기 용량 단위를 지정하려면 다음 명령문을 사용할 수 있습니다.
ALTER TABLE
mykeyspace.mytable
WITH CUSTOM_PROPERTIES={'capacity_mode':{'throughput_mode': 'PROVISIONED', 'read_capacity_units': 10, 'write_capacity_units': 20}};
다음 명령문은 테이블의 고객 관리형 KMS 키를 지정합니다.
ALTER TABLE
mykeyspace.mytable
WITH CUSTOM_PROPERTIES={ 'encryption_specification':{ 'encryption_type': 'CUSTOMER_MANAGED_KMS_KEY', 'kms_key_identifier':'arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111
' } };
테이블 point-in-time 복원을 활성화하려면 다음 명령문을 사용할 수 있습니다.
ALTER TABLE mykeyspace.mytable WITH CUSTOM_PROPERTIES={'point_in_time_recovery': {'status': 'enabled'}};
테이블의 기본 Time to Live 값을 초 단위로 설정하려면 다음 명령문을 사용할 수 있습니다.
ALTER TABLE
my_table
WITH default_time_to_live = 2592000;
이 명령문을 사용하면 테이블의 Time to Live 설정을 사용자 지정할 수 있습니다.
ALTER TABLE
mytable
WITH CUSTOM_PROPERTIES={'ttl':{'status': 'enabled'}};
테이블 복원
RESTORE TABLE
명령문을 사용하여 테이블을 특정 시점으로 복원할 수 있습니다. 이 명령문을 사용하려면 테이블에서 point-in-time 복구를 활성화해야 합니다. 자세한 정보는 Amazon Keyspaces (Apache Cassandra용) 에 사용되는 Point-in-time 복구을 참조하세요.
구문
restore_table_statement ::= RESTORE TABLE table_name FROM TABLE table_name [ WITH table_options [ , ... ] ];
여기서 각 항목은 다음과 같습니다.
-
restored_table_name
복원된 테이블의 이름입니다. -
source_table_name
소스 테이블의 이름입니다. -
table_options
다음과 같이 구성됩니다.-
restore_timestamp
ISO 8601 형식의 복원 시점 시간입니다. 지정하지 않으면 현재 타임스탬프가 사용됩니다. -
CUSTOM_PROPERTIES
— Amazon Keyspace와 관련된 설정 맵.-
capacity_mode
: 테이블의 읽기/쓰기 처리 용량 모드를 지정합니다. 옵션은throughput_mode:PAY_PER_REQUEST
및throughput_mode:PROVISIONED
입니다. 프로비저닝된 용량 모드에는 및 가 입력으로 필요합니다read_capacity_units
.write_capacity_units
기본값은 소스 테이블의 현재 설정입니다. -
encryption_specification
: 저장 시 암호화를 위한 암호화 옵션을 지정합니다. 옵션은encryption_type:AWS_OWNED_KMS_KEY
및encryption_type:CUSTOMER_MANAGED_KMS_KEY
입니다. 고객 관리 키 암호화 옵션을 사용하려면 Amazon 리소스 이름 (ARN) 형식의 AWS KMS 키를 입력해야 합니다.kms_key_identifier:ARN
고객 관리 키로 암호화된 테이블을 로 암호화된 테이블로 복원하려면 Amazon Keyspaces에서 원본 테이블의 키에 액세스할 수 있어야 합니다. AWS 소유 키 AWS KMS -
point_in_time_recovery
: 테이블에 대한 point-in-time 복원 활성화 또는 비활성화 여부를 지정합니다. 옵션은status:enabled
및status:disabled
입니다. 새 테이블을 생성할 때와 달리 복원된 테이블의 기본 상태는 설정이 원본 테이블에서status:enabled
상속되기 때문입니다. 복원된 테이블의 PITR을 비활성화하려면 명시적으로 설정해야 합니다.status:disabled
-
-
TAGS
리소스에 첨부할 키-값 쌍 태그의 목록입니다.
-
참고
삭제된 테이블은 삭제 시점으로만 복원할 수 있습니다.
예
RESTORE TABLE mykeyspace.mytable_restored from table mykeyspace.my_table WITH restore_timestamp = '2020-06-30T04:05:00+0000' AND custom_properties = {'point_in_time_recovery':{'status':'disabled'}, 'capacity_mode':{'throughput_mode': 'PROVISIONED', 'read_capacity_units': 10, 'write_capacity_units': 20}} AND TAGS={'key1':'val1', 'key2':'val2'};
DROP TABLE
DROP TABLE
명령문을 사용하여 키스페이스에서 테이블을 제거합니다.
구문
drop_table_statement ::= DROP TABLE [ IF EXISTS ] table_name
여기서 각 항목은 다음과 같습니다.
-
IF EXISTS
테이블이 존재하지 않는 경우 실패를DROP TABLE
방지합니다. (선택 사항) -
table_name
삭제될 테이블의 이름입니다.
예
DROP TABLE "myGSGKeyspace".employees_tbl;