Cassandra 테이블 예: 테이블 생성, 변경, 삭제 및 자르기

CQL(Cassandra 쿼리 언어)의 구문은 다음과 유사합니다. SQL 언어.

Cassandra에서 테이블을 만드는 방법

Cassandra의 컬럼 패밀리는 RDBMS 테이블과 유사합니다. 컬럼 패밀리는 데이터를 저장하는 데 사용됩니다.

Cassandra에서 컬럼 패밀리를 생성하는 데 'Create Table' 명령이 사용됩니다.

통사론

Create table KeyspaceName.TableName
(
ColumnName DataType,
ColumnName DataType,
ColumnName DataType
.
.
.
Primary key(ColumnName)
) with PropertyName=PropertyValue;

1. 기본 키: 두 종류의가 있습니다 기본 키.

  • 단일 기본 키: 단일 기본 키는 다음과 같이 지정됩니다.wing 통사론.

통사론

Primary key (ColumnName)

단일 기본 키에는 열이 하나만 있습니다. 해당 열을 분할 키라고도 합니다. 데이터는 해당 열을 기준으로 분할됩니다. 데이터는 파티션 키를 기준으로 여러 노드에 분산됩니다.

2. 복합 기본 키: 복합 기본 키는 다음과 같이 지정됩니다.wing 통사론.

통사론

Primary key(ColumnName1,ColumnName2 . . .)

위 구문에서 ColumnName1은 분할 키이고 ColumnName2는 클러스터링 키입니다. 데이터는 ColumnName1을 기준으로 분할되고 데이터는 ColumnName2를 기준으로 클러스터링됩니다. 클러스터링은 파티션의 데이터를 정렬하는 프로세스입니다.

3. 복합 분할 키: 복합 파티셔닝 키는 다음과 같이 지정됩니다.wing 통사론.

통사론

Primary Key((ColumnName1,ColumnName2),ColumnName3...))

위 구문에서 ColumnName1과 ColumnName2는 복합 파티션 키입니다. 데이터는 ColumnName1 및 ColumnName2 열을 기준으로 분할되고 데이터는 ColumnName3을 기준으로 클러스터링됩니다. 단일 파티션에 데이터가 너무 많은 경우. 그런 다음 복합 파티셔닝 키가 사용됩니다. 복합 파티셔닝 키는 데이터에 대한 여러 파티션을 만드는 데 사용됩니다.

  • 조항 포함

"With 절"은 정의된 테이블에 대한 속성과 해당 값을 지정하는 데 사용됩니다. 예를 들어 Cassandra 테이블 데이터를 압축하려는 경우입니다. With 절에 압축 알고리즘 속성 값을 지정하여 압축 속성을 설정할 수 있습니다.

다음은 키스페이스 'University'에 테이블 이름 'Student'를 생성하는 'Create table' 명령의 실행입니다.

Cassandra 테이블 생성

'Create table' 명령을 성공적으로 실행하면 RollNo, Name 및 dept 열이 있는 'University' 키스페이스에 'Student' 테이블이 생성됩니다. RollNo가 기본 키입니다. RollNo도 파티션 키입니다. 모든 데이터는 단일 파티션에 있습니다.

카산드라 얼터 테이블

테이블 변경 명령은 컬럼 삭제, 새 컬럼 추가, 컬럼 이름 변경, 컬럼 유형 변경, 테이블 속성 변경 등의 작업을 수행하는 데 사용됩니다.

통사론

FOLLOwing 'Alter Table' 명령의 구문입니다.

Alter table KeyspaceName.TableName  +
Alter ColumnName TYPE ColumnDataype |
Add ColumnName ColumnDataType |
Drop ColumnName |
Rename ColumnName To NewColumnName |
With propertyName=PropertyValue

다음은 Student 테이블에 새 열을 추가하는 'Alter Table' 명령의 스냅샷입니다.

카산드라 얼터 테이블

'Alter Table' 명령을 성공적으로 실행하면 데이터 유형이 'int'인 새 열 'Semester'가 Student 테이블에 추가됩니다.

다음은 업데이트된 Student 테이블을 보여주는 스크린샷입니다.

카산드라 얼터 테이블

카산드라 드롭 테이블

'Drop table' 명령은 키스페이스의 모든 데이터를 포함하여 지정된 테이블을 삭제합니다. 테이블을 삭제하기 전에 Cassandra는 스키마가 아닌 데이터의 스냅샷을 백업으로 만듭니다.

통사론

Drop Table KeyspaceName.TableName

다음은 키스페이스 'University'에서 Student 테이블을 삭제하는 실행된 명령 'Drop Table'의 스냅샷입니다.

카산드라 드롭 테이블

'Drop Table' 명령을 성공적으로 실행하면 테이블 Student가 키스페이스 University에서 삭제됩니다.

다음은 존재하지 않는 Student 테이블에 액세스하려고 할 때 Cassandra가 반환한 오류를 보여주는 스냅샷입니다.

카산드라 드롭 테이블

카산드라 잘린 테이블

'Truncate table' 명령은 지정된 테이블에서 모든 데이터를 제거합니다. 데이터를 자르기 전에, 카산드 라 데이터의 스냅샷을 백업으로 가져옵니다.

통사론

Truncate KeyspaceName.TableName

Student 테이블에는 세 개의 레코드가 있습니다. 테이블에 있는 기록들입니다.

카산드라 잘린 테이블

다음은 Student 테이블에서 모든 데이터를 제거하는 'Truncate table' 명령을 실행한 스냅샷입니다.

카산드라 잘린 테이블

'Truncate Table' 명령을 성공적으로 실행하면 Student 테이블에서 모든 데이터가 제거됩니다.

다음은 Student 테이블에 레코드가 없는 데이터베이스 상태의 스냅샷입니다.

카산드라 잘린 테이블