기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
이 섹션에서는 콘솔, cqlsh
또는 AWS CLI를 사용하여 테이블을 생성합니다.
테이블은 데이터를 구성하고 저장하는 곳입니다. 테이블의 프라이머리 키는 테이블에서 데이터를 분할하는 방법을 결정합니다. 프라이머리 키는 필수 파티션 키와 하나 이상의 선택적 클러스터링 열로 구성됩니다. 프라이머리 키를 구성하는 결합된 값은 테이블의 모든 데이터에서 고유해야 합니다. 테이블에 대한 자세한 내용은 다음 주제를 참조하세요.
파티션 키 설계: Amazon Keyspaces에서 파티션 키를 효과적으로 사용하는 방법
테이블 작업: Amazon Keyspaces에서 테이블 생성 상태 확인
-
CQL 언어 참조의 DDL 문: 표
테이블 리소스 관리: Amazon Keyspaces(Apache Cassandra용)에서 서버리스 리소스 관리
테이블 리소스 사용률 모니터링: Amazon을 사용하여 Amazon Keyspaces 모니터링 CloudWatch
테이블을 생성할 때 다음을 지정합니다.
-
테이블의 이름
-
테이블에 있는 각 열의 이름 및 데이터 유형
-
테이블의 프라이머리 키
-
파티션 키 - 필수
-
클러스터링 컬럼 — 선택 사항
-
다음 절차를 사용하여 지정된 열, 데이터 유형, 파티션 키 및 클러스터링 열을 포함하는 테이블을 생성합니다.
다음 절차는 이러한 열과 데이터 유형을 포함하는 book_awards
테이블을 만듭니다.
year int
award text
rank int
category text
book_title text
author text
publisher text
콘솔을 사용하여 테이블을 생성하려면
-
AWS Management Console에 로그인하고 Amazon Keyspaces 콘솔(https://console.aws.amazon.com/msk/home
)을 엽니다. -
탐색 창에서 Keyspaces를 선택합니다.
-
이 테이블을 만들려는 키스페이스로
catalog
를 선택합니다. -
테이블 생성을 선택합니다.
-
테이블 이름 상자에 테이블 이름으로
book_awards
을 입력합니다.이름 제약 조건:
-
이름은 비워둘 수 없습니다.
-
허용되는 문자: 영숫자 및 밑줄(
_
) -
최대 길이는 48자입니다.
-
-
열 섹션에서 이 테이블에 추가할 각 열에 대해 다음 단계를 반복합니다.
다음 열과 데이터 유형을 추가합니다.
year int award text rank int category text book_title text author text publisher text
-
이름 - 열에 이름을 입력합니다.
이름 제약 조건:
-
이름은 비워둘 수 없습니다.
-
허용되는 문자: 영숫자 및 밑줄(
_
) -
최대 길이는 48자입니다.
-
-
유형 — 데이터 유형 목록에서 이 열의 데이터 유형을 선택합니다.
-
다른 열을 추가하려면 열 추가를 선택합니다.
-
-
파티션 키에서 파티션 키로
award
와year
를 선택합니다. 각 테이블에는 파티션 키가 필요합니다. 파티션 키는 하나 이상의 열로 구성될 수 있습니다. -
category
및rank
를 클러스터링 열로 추가합니다. 클러스터링 열은 선택 사항이며 각 파티션 내의 정렬 순서를 결정합니다.-
클러스터링 열을 추가하려면 클러스터링 열 추가를 선택합니다.
-
열 목록에서 범주를 선택합니다. 순서 목록에서 ASC를 선택하여 이 열의 값을 오름차순으로 정렬합니다. (내림차순은 DESC를 선택합니다.)
그런 다음 클러스터링 열 추가를 선택하고 순위를 선택합니다.
-
-
테이블 설정 섹션에서 기본 설정을 선택합니다.
-
테이블 생성을 선택합니다.
-
테이블이 생성되었는지 확인합니다.
-
탐색 창에서 테이블을 선택합니다.
-
테이블이 테이블 목록에 있는지 확인합니다.
-
테이블 이름을 선택합니다.
-
모든 열과 데이터 유형이 올바른지 확인합니다.
참고
테이블에 추가한 순서와 동일한 순서로 열이 나열되지 않을 수 있습니다.
-
이 절차는 CQL을 사용하여 다음 열과 데이터 유형을 포함하는 테이블을 만듭니다. year
및 award
열은 category
및 rank
를 클러스터링 열로 사용하는 파티션 키로, 함께 테이블의 프라이머리 키를 구성합니다.
year int
award text
rank int
category text
book_title text
author text
publisher text
CQL을 사용하여 테이블을 생성하려면
AWS CloudShell을 열고 다음 명령을 사용하여 Amazon Keyspaces에 연결합니다.
us-east-1
을 자체 리전으로 업데이트해야 합니다.cqlsh-expansion cassandra.
us-east-1
.amazonaws.com 9142 --ssl해당 명령의 결과는 다음과 같아야 합니다.
Connected to Amazon Keyspaces at cassandra.us-east-1.amazonaws.com:9142 [cqlsh 6.1.0 | Cassandra 3.11.2 | CQL spec 3.4.4 | Native protocol v4] Use HELP for help. cqlsh current consistency level is ONE.
-
키스페이스 프롬프트(
cqlsh:keyspace_name>
)에서 명령 창에 다음 코드를 입력하여 테이블을 생성합니다.CREATE TABLE
catalog.book_awards
( year int, award text, rank int, category text, book_title text, author text, publisher text, PRIMARY KEY ((year, award), category, rank) );참고
ASC
는 기본 클러스터링 순서입니다. 내림차순으로DESC
를 지정할 수도 있습니다.year
및award
는 파티션 키 열입니다. 그러면category
와rank
는 오름차순(ASC
)으로 정렬되는 클러스터링 열입니다. 이러한 열은 함께 테이블의 프라이머리 키를 구성합니다. -
테이블이 생성되었는지 확인합니다.
SELECT * from system_schema.tables WHERE keyspace_name='catalog.book_awards' ;
결과는 다음과 비슷해야 합니다.
keyspace_name | table_name | bloom_filter_fp_chance | caching | cdc | comment | compaction | compression | crc_check_chance | dclocal_read_repair_chance | default_time_to_live | extensions | flags | gc_grace_seconds | id | max_index_interval | memtable_flush_period_in_ms | min_index_interval | read_repair_chance | speculative_retry ---------------+------------+------------------------+---------+-----+---------+------------+-------------+------------------+----------------------------+----------------------+------------+-------+------------------+----+--------------------+-----------------------------+--------------------+--------------------+------------------- (0 rows)
> -
테이블 구조를 확인합니다.
SELECT * FROM system_schema.columns WHERE keyspace_name = 'catalog' AND table_name = 'book_awards';
이 문의 출력은 이 예제와 비슷해야 합니다.
keyspace_name | table_name | column_name | clustering_order | column_name_bytes | kind | position | type ---------------+-------------+-------------+------------------+------------------------+---------------+----------+------ catalog | book_awards | year | none | 0x79656172 | partition_key | 0 | int catalog | book_awards | award | none | 0x6177617264 | partition_key | 1 | text catalog | book_awards | category | asc | 0x63617465676f7279 | clustering | 0 | text catalog | book_awards | rank | asc | 0x72616e6b | clustering | 1 | int catalog | book_awards | author | none | 0x617574686f72 | regular | -1 | text catalog | book_awards | book_title | none | 0x626f6f6b5f7469746c65 | regular | -1 | text catalog | book_awards | publisher | none | 0x7075626c6973686572 | regular | -1 | text (7 rows)
모든 열과 데이터 유형이 예상한 대로인지 확인합니다. 열의 순서는
CREATE
문의 순서와 다를 수 있습니다.
이 절차는 AWS CLI를 사용하여 다음 열과 데이터 유형을 포함하는 테이블을 만듭니다. year
및 award
열은 category
및 rank
를 클러스터링 열로 사용하여 파티션 키를 구성합니다.
year int
award text
rank int
category text
book_title text
author text
publisher text
AWS CLI를 사용해 테이블을 생성하려면
다음 명령은 book_awards라는 이름의 테이블을 생성합니다. 테이블의 파티션 키는 year
열과 award
열로 구성되며 클러스터링 키는 category
열과 rank
열로 구성되고, 두 클러스터링 열 모두 오름차순 정렬 순서를 사용합니다. (읽기 쉽도록 이 섹션의 테이블 생성 명령의 schema-definition
은 별도의 줄로 구분되어 있습니다.)
-
다음 문을 사용하여 테이블을 생성할 수 있습니다.
aws keyspaces create-table --keyspace-name 'catalog' \ --table-name 'book_awards' \ --schema-definition 'allColumns=[{name=year,type=int},{name=award,type=text},{name=rank,type=int}, {name=category,type=text}, {name=author,type=text},{name=book_title,type=text},{name=publisher,type=text}], partitionKeys=[{name=year},{name=award}],clusteringKeys=[{name=category,orderBy=ASC},{name=rank,orderBy=ASC}]'
이 명령은 다음 출력을 반환합니다.
{ "resourceArn": "arn:aws:cassandra:us-east-1:111222333444:/keyspace/catalog/table/book_awards" }
-
다음 명령을 사용하여 테이블의 메타데이터 속성을 확인할 수 있습니다.
aws keyspaces get-table --keyspace-name 'catalog' --table-name 'book_awards'
이 명령은 다음 출력을 반환합니다.
{ "keyspaceName": "catalog", "tableName": "book_awards", "resourceArn": "arn:aws:cassandra:us-east-1:123SAMPLE012:/keyspace/catalog/table/book_awards", "creationTimestamp": "2024-07-11T15:12:55.571000+00:00", "status": "ACTIVE", "schemaDefinition": { "allColumns": [ { "name": "year", "type": "int" }, { "name": "award", "type": "text" }, { "name": "category", "type": "text" }, { "name": "rank", "type": "int" }, { "name": "author", "type": "text" }, { "name": "book_title", "type": "text" }, { "name": "publisher", "type": "text" } ], "partitionKeys": [ { "name": "year" }, { "name": "award" } ], "clusteringKeys": [ { "name": "category", "orderBy": "ASC" }, { "name": "rank", "orderBy": "ASC" } ], "staticColumns": [] }, "capacitySpecification": { "throughputMode": "PAY_PER_REQUEST", "lastUpdateToPayPerRequestTimestamp": "2024-07-11T15:12:55.571000+00:00" }, "encryptionSpecification": { "type": "AWS_OWNED_KMS_KEY" }, "pointInTimeRecovery": { "status": "DISABLED" }, "defaultTimeToLive": 0, "comment": { "message": "" }, "replicaSpecifications": [] }
테이블의 데이터에 대해 CRUD(생성, 읽기, 업데이트 및 삭제) 작업을 수행하려면 Amazon Keyspaces에서 CQL을 사용하여 데이터 생성, 읽기, 업데이트 및 삭제(CRUD)로 진행합니다.