테이블 생성 시 관계형(SQL) 데이터베이스 및 DynamoDB 비교
테이블은 관계형 데이터베이스와 Amazon DynamoDB의 기본 데이터 구조입니다. 관계형 데이터베이스 관리 시스템(RDBMS)에서는 테이블을 생성할 때 테이블의 스키마를 정의해야 합니다. 반면 DynamoDB 테이블은 스키마가 없습니다. 즉, 테이블을 생성할 때 기본 키 외에는 추가 속성이나 데이터 형식을 정의할 필요가 없습니다.
다음 섹션에서는 SQL을 사용하여 테이블을 생성하는 방법과 DynamoDB를 사용하여 테이블을 생성하는 방법을 비교합니다.
SQL에서 테이블 생성
SQL에서는 다음 예에 나온 것처럼 CREATE TABLE
문을 사용하여 테이블을 생성합니다.
CREATE TABLE Music ( Artist VARCHAR(20) NOT NULL, SongTitle VARCHAR(30) NOT NULL, AlbumTitle VARCHAR(25), Year INT, Price FLOAT, Genre VARCHAR(10), Tags TEXT, PRIMARY KEY(Artist, SongTitle) );
이 테이블의 기본 키는 Artist 및 SongTitle로 구성됩니다.
테이블의 모든 열과 데이터 형식 및 테이블의 기본 키를 정의해야 합니다. (필요할 경우, ALTER TABLE
문을 사용하여 나중에 이 정의를 변경할 수 있습니다.)
많은 SQL 구현에서는 CREATE TABLE
문의 일부로 테이블의 스토리지 사양을 정의할 수 있습니다. 달리 지정하지 않는 한 테이블은 기본 스토리지 설정으로 생성됩니다. 프로덕션 환경에서 데이터베이스 관리자는 최적의 스토리지 파라미터 결정을 도울 수 있습니다.
DynamoDB에서 테이블 생성
다음 예에 나온 것처럼 CreateTable
작업을 사용하여 프로비저닝된 모드 테이블을 생성하고 파라미터를 지정합니다.
{ TableName : "Music", KeySchema: [ { AttributeName: "Artist", KeyType: "HASH" //Partition key }, { AttributeName: "SongTitle", KeyType: "RANGE" //Sort key } ], AttributeDefinitions: [ { AttributeName: "Artist", AttributeType: "S" }, { AttributeName: "SongTitle", AttributeType: "S" } ], ProvisionedThroughput: { // Only specified if using provisioned mode ReadCapacityUnits: 1, WriteCapacityUnits: 1 } }
이 테이블의 기본 키는 Artist(파티션 키)와 SongTitle(정렬 키)로 구성됩니다.
다음 파라미터를 CreateTable
에 입력해야 합니다.
-
TableName
- 테이블 이름 -
KeySchema
- 기본 키에 사용되는 속성. 자세한 내용은 테이블, 항목 및 속성 및 프라이머리 키 단원을 참조하세요. -
AttributeDefinitions
- 키 스키마 속성의 데이터 형식 -
ProvisionedThroughput (for provisioned tables)
- 이 테이블에 필요한 초당 읽기 및 쓰기 수. DynamoDB는 처리량 요구 사항이 항상 충족되도록 충분한 스토리지 및 시스템 리소스를 남겨 둡니다. 필요할 경우,UpdateTable
작업을 사용하여 나중에 이를 변경할 수 있습니다. 스토리지 할당이 전적으로 DynamoDB에 의해 관리되기 때문에 테이블의 스토리지 요구 사항을 지정할 필요가 없습니다.