

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

# 테이블
<a name="cql.ddl.table"></a>

*테이블*은 Amazon Keyspaces의 기본 데이터 구조입니다. 테이블의 데이터는 행과 열로 구성됩니다. 이러한 열의 하위 집합은 파티션 키 지정을 통해 파티셔닝(및 데이터 배치)을 결정하는 데 사용됩니다.

또 다른 열 집합을 클러스터링 열로 정의할 수 있습니다. 즉, 이러한 열 집합을 쿼리 실행 시 조건자로 사용할 수 있습니다.

기본적으로 *온디맨드* 처리량 용량을 갖춘 새 테이블이 생성됩니다. 새 테이블과 기존 테이블의 용량 모드를 변경할 수 있습니다. 읽기/쓰기 용량 처리량 모드에 대한 자세한 내용은 [Amazon Keyspaces의 읽기/쓰기 용량 모드 구성](ReadWriteCapacityMode.md)를 참조하세요.

프로비저닝된 모드의 테이블의 경우 선택적 `AUTOSCALING_SETTINGS`를 구성할 수 있습니다. Amazon Keyspaces 오토 스케일링 및 사용 가능한 옵션에 대한 자세한 내용은 [기존 테이블에서 오토 스케일링 구성](autoscaling.configureTable.md) 섹션을 참조하세요.

Amazon Keyspaces 테이블의 할당량 한도 및 제약 조건에 대한 자세한 내용은 [Amazon Keyspaces(Apache Cassandra용)에 대한 할당량](quotas.md)을 참조하세요.

**Topics**
+ [CREATE TABLE](#cql.ddl.table.create)
+ [ALTER TABLE](#cql.ddl.table.alter)
+ [RESTORE TABLE](#cql.ddl.table.restore)
+ [DROP TABLE](#cql.ddl.table.drop)

## CREATE TABLE
<a name="cql.ddl.table.create"></a>

`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 [ FROZEN ][ 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 ]
                              | cdc
                              | CUSTOM_PROPERTIES
                              | AUTOSCALING_SETTINGS
                              | default_time_to_live
                              | TAGS

clustering_order       ::=  column_name (ASC | DESC) ( ',' column_name (ASC | DESC) )*
```

위치:
+ `table_name`은 생성할 테이블의 이름입니다. 정규화된 이름에는 키스페이스 접두사가 포함됩니다. 또는 키스페이스 문을 사용하여 현재 `USE` 키스페이스를 설정할 수 있습니다.
+ `column_definition`은 다음 항목으로 구성됩니다.
  +  *`column_name`* – 열의 이름입니다.
  + `cql_type` — An Amazon Keyspaces 데이터 유형([데이터 타입](cql.elements.md#cql.data-types) 참조)
  + `FROZEN` - 사용자 정의 또는 유형`collection`(예: , `LIST` `SET`또는 `MAP`)인이 열을 고정으로 지정합니다. **프로즌 수집은 변경할 수 없는 단일 값으로 직렬화되고 `BLOB`처럼 취급됩니다. 자세한 내용은 [컬렉션 유형](cql.elements.md#cql.data-types.collection) 단원을 참조하십시오.
  + `STATIC` — 이 열을 정적 열로 지정합니다. 정적 열에는 동일한 파티션의 모든 행이 공유하는 값이 저장됩니다.
  + `PRIMARY KEY` — 이 열을 테이블의 프라이머리 키로 지정합니다.
+ `primary_key`은 다음 항목으로 구성됩니다.
  + `partition_key`
  + `clustering_columns`
+ `partition_key`:
  + 파티션 키는 단일 열이거나 둘 이상의 열로 구성된 복합 값일 수 있습니다. 프라이머리 키의 파티션 키 부분은 필수 입력 항목이며 이에 따라 Amazon Keyspaces가 데이터를 저장하는 방식이 결정됩니다.
+ `clustering_columns`:
  + 프라이머리 키의 선택적 클러스터링 열 부분에 따라 각 파티션 내에서 데이터가 클러스터링되고 정렬되는 방식이 결정됩니다.
+ `table_options`은 다음 항목으로 구성됩니다.
  + *`CLUSTERING ORDER BY`* — 테이블의 기본 클러스터링 순서는 `ASC`(오름차순) 정렬 방향의 클러스터링 키로 구성됩니다. 기본 정렬 동작을 재정의하도록 지정합니다.
  +  *`cdc`* - Amazon Keyspaces가 테이블에 대한 변경 데이터 캡처(CDC) 스트림을 생성할지 여부를 지정하는 부울입니다. 기본값은 `false`입니다. 스트림을 활성화할 `view type` 때를 지정하려면를 `CUSTOM_PROPERTIES` `cdc_specification`로 설정합니다.
  +  *`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`입니다.
    +  `cdc_specification`: CDC 스트림`view_type`의를 지정합니다. 다음과 같은 옵션이 있습니다.
      + `NEW_AND_OLD_IMAGES` - 변경 전후 행의 두 버전입니다. 기본값입니다.
      + `NEW_IMAGE` - 변경 후 행의 버전입니다.
      + `OLD_IMAGE` - 변경 전 행의 버전입니다.
      + `KEYS_ONLY` - 변경된 행의 파티션 및 클러스터링 키입니다.

      CDC 스트림에 대한 자세한 내용은 섹션을 참조하세요[Amazon Keyspaces에서 변경 데이터 캡처(CDC) 스트림 작업](cdc.md). 코드 예제는 [Amazon Keyspaces에서 새 테이블을 생성할 때 CDC 스트림 활성화](keyspaces-enable-cdc-new-table.md) 섹션을 참조하세요.
    +  `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`: 테이블에 대해 특정 시점 복원을 활성화할지 여부를 지정합니다. 옵션은 `status:enabled` 및 `status:disabled`입니다. 지정하지 않으면 기본값으로 `status:disabled`이 지정됩니다.
    + `replica_updates`: AWS 리전에 고유한 다중 리전 테이블의 설정을 지정합니다. 다중 리전 테이블의 경우 AWS 리전에 따라 테이블의 읽기 용량을 다르게 구성할 수 있습니다. 다음 파라미터를 구성하여 이 작업을 수행할 수 있습니다. 자세한 내용과 예제는 [Amazon Keyspaces에서 오토 스케일링을 사용하는 프로비저닝된 모드에서 다중 리전 테이블 생성](tables-mrr-create-provisioned.md) 섹션을 참조하세요.
      + `region` - 다음 설정이 있는 테이블 복제본 AWS 리전 의 입니다.
        + `read_capacity_units`
    +  `TTL`: 테이블에 대한 Time to Live 사용자 정의 설정을 활성화합니다. 활성화하려면 `status:enabled`을 사용합니다. 기본값은 `status:disabled`입니다. `TTL`이 활성화된 후에는 테이블에 대해 이 설정을 비활성화할 수 없습니다.
  + `AUTOSCALING_SETTINGS`에는 프로비저닝 모드의 테이블에 대한 다음과 같은 선택적 설정이 포함되어 있습니다. 자세한 내용과 예제는 [오토 스케일링을 사용하여 새 테이블 만들기](autoscaling.createTable.md) 섹션을 참조하세요.
    + `provisioned_write_capacity_autoscaling_update`:
      + `autoscaling_disabled` - 쓰기 용량에 대해 오토 스케일링을 활성화하려면 값을 `false`로 설정합니다. 기본값은 `true`입니다. (선택 사항)
      + `minimum_units` - 테이블이 항상 지원할 준비가 되어야 하는 쓰기 처리량의 최소 수준입니다. 값은 1에서 계정에 대해 초당 최대 처리량 할당량(기본값 40,000) 사이여야 합니다.
      + `maximum_units` - 테이블이 항상 지원할 준비가 되어야 하는 쓰기 처리량의 최대 수준입니다. 값은 1에서 계정에 대해 초당 최대 처리량 할당량(기본값 40,000) 사이여야 합니다.
      + `scaling_policy` - Amazon Keyspaces는 대상 추적 정책을 지원합니다. 오토 스케일링 대상은 테이블의 프로비저닝된 쓰기 용량입니다.
        + `target_tracking_scaling_policy_configuration` - 대상 추적 정책을 정의하려면 대상 값을 정의해야 합니다. 대상 추적 및 휴지 기간에 대한 자세한 내용을 알아보려면 *애플리케이션 오토 스케일링 사용 설명서*의 [대상 추적 조정 정책](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)을 참조하세요.
          + `target_value` - 테이블의 목표 활용률입니다. Amazon Keyspaces 오토 스케일링은 프로비저닝된 용량 대비 소비된 용량의 비율을 이 값 또는 그 수준으로 유지하도록 합니다. `target_value`를 백분율로 지정합니다. 20에서 90 사이의 두 배입니다. (필수)
          + `scale_in_cooldown` - 규모 조정 활동 사이의 휴지 기간(초)으로, 다른 스케일 인 활동이 시작되기 전에 테이블을 안정화할 수 있습니다. 값이 제공되지 않으면 기본값은 0입니다. (선택 사항)
          + `scale_out_cooldown` - 규모 조정 활동 사이의 휴지 기간(초)으로, 다른 스케일 아웃 활동이 시작되기 전에 테이블을 안정화할 수 있습니다. 값이 제공되지 않으면 기본값은 0입니다. (선택 사항)
          + `disable_scale_in`: 테이블에 `scale-in`을 비활성화 또는 활성화할지 여부를 지정하는 `boolean`입니다. 이 파라미터는 기본적으로 비활성화되어 있습니다. `scale-in`을 켜려면 `boolean` 값을 `FALSE`로 설정합니다. 즉, 사용자를 대신하여 테이블의 용량이 자동으로 스케일 다운됩니다. (선택 사항) 
    + `provisioned_read_capacity_autoscaling_update`:
      + `autoscaling_disabled` - 읽기 용량에 대해 오토 스케일링을 활성화하려면 값을 `false`로 설정합니다. 기본값은 `true`입니다. (선택 사항)
      + `minimum_units` - 테이블이 항상 지원할 준비가 되어야 하는 처리량의 최소 수준입니다. 값은 1에서 계정에 대해 초당 최대 처리량 할당량(기본값 40,000) 사이여야 합니다.
      + `maximum_units` - 테이블이 항상 지원할 준비가 되어야 하는 처리량의 최대 수준입니다. 값은 1에서 계정에 대해 초당 최대 처리량 할당량(기본값 40,000) 사이여야 합니다.
      + `scaling_policy` - Amazon Keyspaces는 대상 추적 정책을 지원합니다. 오토 스케일링 대상은 테이블의 프로비저닝된 읽기 용량입니다.
        + `target_tracking_scaling_policy_configuration` - 대상 추적 정책을 정의하려면 대상 값을 정의해야 합니다. 대상 추적 및 휴지 기간에 대한 자세한 내용을 알아보려면 *애플리케이션 오토 스케일링 사용 설명서*의 [대상 추적 조정 정책](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)을 참조하세요.
          + `target_value` - 테이블의 목표 활용률입니다. Amazon Keyspaces 오토 스케일링은 프로비저닝된 용량 대비 소비된 용량의 비율을 이 값 또는 그 수준으로 유지하도록 합니다. `target_value`를 백분율로 지정합니다. 20에서 90 사이의 두 배입니다. (필수)
          + `scale_in_cooldown` - 규모 조정 활동 사이의 휴지 기간(초)으로, 다른 스케일 인 활동이 시작되기 전에 테이블을 안정화할 수 있습니다. 값이 제공되지 않으면 기본값은 0입니다. (선택 사항)
          + `scale_out_cooldown` - 규모 조정 활동 사이의 휴지 기간(초)으로, 다른 스케일 아웃 활동이 시작되기 전에 테이블을 안정화할 수 있습니다. 값이 제공되지 않으면 기본값은 0입니다. (선택 사항)
          + `disable_scale_in`: 테이블에 `scale-in`을 비활성화 또는 활성화할지 여부를 지정하는 `boolean`입니다. 이 파라미터는 기본적으로 비활성화되어 있습니다. `scale-in`을 켜려면 `boolean` 값을 `FALSE`로 설정합니다. 즉, 사용자를 대신하여 테이블의 용량이 자동으로 스케일 다운됩니다. (선택 사항) 
    + `replica_updates`: 다중 리전 테이블의 AWS 리전 특정 Auto Scaling 설정을 지정합니다. 다중 리전 테이블의 경우 AWS 리전에 따라 테이블의 읽기 용량을 다르게 구성할 수 있습니다. 다음 파라미터를 구성하여 이 작업을 수행할 수 있습니다. 자세한 내용과 예제는 [Amazon Keyspaces에서 다중 리전 테이블에 대한 프로비저닝된 용량 및 오토 스케일링 설정 업데이트](tables-mrr-autoscaling.md) 섹션을 참조하세요.
      + `region` - 다음 설정이 있는 테이블 복제본 AWS 리전 의 입니다.
        + `provisioned_read_capacity_autoscaling_update`
          + `autoscaling_disabled` - 테이블의 읽기 용량에 대해 오토 스케일링을 활성화하려면 값을 `false`로 설정합니다. 기본값은 `true`입니다. (선택 사항) 
**참고**  
테이블의 모든 복제본에 대해 다중 리전 테이블의 오토 스케일링을 활성화하거나 비활성화해야 합니다.
          + `minimum_units` - 테이블이 항상 지원할 준비가 되어야 하는 읽기 처리량의 최소 수준입니다. 값은 1에서 계정에 대해 초당 최대 처리량 할당량(기본값 40,000) 사이여야 합니다.
          + `maximum_units` - 테이블이 항상 지원할 준비가 되어야 하는 읽기 처리량의 최대 수준입니다. 값은 1에서 계정에 대해 초당 최대 처리량 할당량(기본값 40,000) 사이여야 합니다.
          + `scaling_policy` - Amazon Keyspaces는 대상 추적 정책을 지원합니다. 오토 스케일링 대상은 테이블의 프로비저닝된 읽기 용량입니다.
            + `target_tracking_scaling_policy_configuration` - 대상 추적 정책을 정의하려면 대상 값을 정의해야 합니다. 대상 추적 및 휴지 기간에 대한 자세한 내용을 알아보려면 *애플리케이션 오토 스케일링 사용 설명서*의 [대상 추적 조정 정책](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)을 참조하세요.
              + `target_value` - 테이블의 목표 활용률입니다. Amazon Keyspaces 오토 스케일링은 프로비저닝된 읽기 용량 대비 소비된 읽기 용량의 비율을 이 값 또는 그 수준으로 유지하도록 합니다. `target_value`를 백분율로 지정합니다. 20에서 90 사이의 두 배입니다. (필수)
              + `scale_in_cooldown` - 규모 조정 활동 사이의 휴지 기간(초)으로, 다른 스케일 인 활동이 시작되기 전에 테이블을 안정화할 수 있습니다. 값이 제공되지 않으면 기본값은 0입니다. (선택 사항)
              + `scale_out_cooldown` - 규모 조정 활동 사이의 휴지 기간(초)으로, 다른 스케일 아웃 활동이 시작되기 전에 테이블을 안정화할 수 있습니다. 값이 제공되지 않으면 기본값은 0입니다. (선택 사항)
              + `disable_scale_in`: 테이블에 `scale-in`을 비활성화 또는 활성화할지 여부를 지정하는 `boolean`입니다. 이 파라미터는 기본적으로 비활성화되어 있습니다. `scale-in`을 켜려면 `boolean` 값을 `FALSE`로 설정합니다. 즉, 사용자를 대신하여 테이블의 읽기 용량이 자동으로 스케일 다운됩니다. (선택 사항) 
  + `default_time_to_live` — 테이블의 기본 Time to Live 설정(초 단위)입니다.
  + `TAGS` – 리소스를 생성할 때 연결할 키-값 페어 태그의 목록입니다.
  + `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 Keyspaces의 정적 열에 대한 용량 소비 추정](static-columns.md)을 참조하세요.

**예제**

```
CREATE TABLE my_keyspace.my_table (
                                            id int,
                                            name text,
                                            region text,
                                            division text,
                                            project text STATIC,
                                            PRIMARY KEY (id,division));
```

사용자 정의 유형(UDT)을 사용하는 열이 있는 테이블을 생성할 수 있습니다. 예제의 첫 번째 문은 유형을 생성하고 두 번째 문은 유형을 사용하는 열이 있는 테이블을 생성합니다.

**예제**

```
CREATE TYPE my_keyspace."udt""N@ME" (my_field int);
CREATE TABLE my_keyspace.my_table (my_col1 int pri key, my_col2 "udt""N@ME");
```

## ALTER TABLE
<a name="cql.ddl.table.alter"></a>

`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`는 괄호 안에 있는 쉼표로 구분된 열 목록입니다.
+ `table_options`은 다음 항목으로 구성됩니다.
  + `AUTOSCALING_SETTINGS`에는 프로비저닝된 테이블에 대한 오토 스케일링 설정이 선택 사항으로 포함되어 있습니다. 구문 및 자세한 설명은 [CREATE TABLE](#cql.ddl.table.create) 섹션을 참조하세요. 예시는 [기존 테이블에서 오토 스케일링 구성](autoscaling.configureTable.md) 섹션을 참조하세요.
  +  *`cdc`* - Amazon Keyspaces가 테이블에 대한 변경 데이터 캡처(CDC) 스트림을 생성할지 여부를 지정하는 부울입니다. 기본값은 `false`입니다. 스트림을 활성화할 `view type` 때를 지정하려면를 `CUSTOM_PROPERTIES` `cdc_specification`로 설정합니다.
  +  *`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`입니다.
    +  `cdc_specification`: CDC 스트림`view_type`의를 지정합니다. 다음과 같은 옵션이 있습니다.
      + `NEW_AND_OLD_IMAGES` - 변경 전후 행의 두 버전입니다. 기본값입니다.
      + `NEW_IMAGE` - 변경 후 행의 버전입니다.
      + `OLD_IMAGE` - 변경 전 행의 버전입니다.
      + `KEYS_ONLY` - 변경된 행의 파티션 및 클러스터링 키입니다.

      CDC 스트림에 대한 자세한 내용은 섹션을 참조하세요[Amazon Keyspaces에서 변경 데이터 캡처(CDC) 스트림 작업](cdc.md). 코드 예제는 [Amazon Keyspaces에서 기존 테이블에 대한 CDC 스트림 활성화](keyspaces-enable-cdc-alter-table.md) 섹션을 참조하세요.
    +  `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`: 테이블에 대해 특정 시점 복원을 활성화할지 여부를 지정합니다. 옵션은 `status:enabled` 및 `status:disabled`입니다. 기본값은 `status:disabled`입니다.
    + `replica_updates`: 다중 리전 테이블의 AWS 리전 특정 설정을 지정합니다. 다중 리전 테이블의 경우 AWS 리전에 따라 테이블의 읽기 용량을 다르게 구성할 수 있습니다. 다음 파라미터를 구성하여 이 작업을 수행할 수 있습니다. 자세한 내용과 예제는 [Amazon Keyspaces에서 다중 리전 테이블에 대한 프로비저닝된 용량 및 오토 스케일링 설정 업데이트](tables-mrr-autoscaling.md) 섹션을 참조하세요.
      + `region` - 다음 설정이 있는 테이블 복제본 AWS 리전 의 입니다.
        + `read_capacity_units` 
    +  `ttl`: 테이블에 대한 Time to Live 사용자 정의 설정을 활성화합니다. 활성화하려면 `status:enabled`을 사용합니다. 기본값은 `status:disabled`입니다. `ttl`이 활성화된 후에는 테이블에 대해 이 설정을 비활성화할 수 없습니다.
+ `default_time_to_live`: 테이블의 기본 Time to Live 설정(초 단위)입니다.
+ `TAGS`는 리소스에 연결할 키-값 페어 태그의 목록입니다.

**참고**  
ALTER TABLE을 사용하면 단일 사용자 지정 속성만 변경할 수 있습니다. 동일한 문에 ALTER TABLE 명령을 두 개 이상 조합할 수 없습니다.

**예시**

다음 문은 기존 테이블에 열을 추가하는 방법을 보여줍니다.

```
ALTER TABLE mykeyspace.mytable ADD (ID int);
```

이 문은 기존 테이블에 두 개의 수집 열을 추가하는 방법을 보여줍니다.
+ 중첩된 프로즌 수집이 포함된 프로즌 수집 열 `col_frozen_list`
+ 중첩된 프로즌 수집이 포함된 비프로즌 수집 열 `col_map`

```
ALTER TABLE my_Table ADD(col_frozen_list FROZEN<LIST<FROZEN<SET<TEXT>>>>, col_map MAP<INT, FROZEN<SET<INT>>>);
```

다음 예제에서는 사용자 정의 유형(UDT)을 사용하는 열을 테이블에 추가하는 방법을 보여줍니다.

```
ALTER TABLE my_keyspace.my_table ADD (my_column, my_udt;);
```

테이블의 용량 모드를 변경하고 읽기 및 쓰기 용량 단위를 지정하려면 다음 문을 사용할 수 있습니다.

```
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'     
                  } 
         };
```

테이블에 대해 시점 복원을 활성화하려면 다음 문을 사용할 수 있습니다.

```
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
<a name="cql.ddl.table.restore"></a>

`RESTORE TABLE` 문을 사용하여 테이블을 특정 시점으로 복원합니다. 이 문을 사용하려면 테이블의 시점 복구가 활성화되어 있어야 합니다. 자세한 내용은 [Amazon Keyspaces에 대한 시점 복구를 통한 데이터 백업 및 복원](PointInTimeRecovery.md) 단원을 참조하십시오.

**구문**

```
restore_table_statement ::=  
    RESTORE TABLE restored_table_name FROM TABLE source_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`. 고객 관리형 키로 암호화된 테이블을 로 암호화된 테이블로 복원하려면 AWS 소유 키 Amazon Keyspaces에서 소스 테이블의 AWS KMS 키에 액세스해야 합니다.
    +  `point_in_time_recovery`: 테이블에 대해 특정 시점 복원을 활성화할지 여부를 지정합니다. 옵션은 `status:enabled` 및 `status:disabled`입니다. 새 테이블을 생성할 때와 달리 복원된 테이블의 기본 상태는 설정이 소스 테이블에서 상속되기 때문에 `status:enabled`입니다. 복원된 테이블의 PITR을 비활성화하려면 `status:disabled`을 명시적으로 설정해야 합니다.
    + `replica_updates`: 다중 리전 테이블의 AWS 리전 특정 설정을 지정합니다. 다중 리전 테이블의 경우 AWS 리전에 따라 테이블의 읽기 용량을 다르게 구성할 수 있습니다. 다음 파라미터를 구성하여 이 작업을 수행할 수 있습니다.
      + `region` - 다음 설정이 있는 테이블 복제본 AWS 리전 의 입니다.
        + `read_capacity_units` 
  + `AUTOSCALING_SETTINGS`에는 프로비저닝된 테이블에 대한 오토 스케일링 설정이 선택 사항으로 포함되어 있습니다. 자세한 구문 및 설명은 [CREATE TABLE](#cql.ddl.table.create) 섹션을 참조하세요.
  + `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
<a name="cql.ddl.table.drop"></a>

`DROP TABLE` 문을 사용하여 키스페이스에서 테이블을 제거합니다.

**구문**

```
drop_table_statement ::=  
    DROP TABLE [ IF EXISTS ] table_name
```

위치:
+ `IF EXISTS`은 테이블이 존재하지 않는 경우 `DROP TABLE`의 실패를 방지합니다. (선택 사항)
+ `table_name`는 삭제할 테이블의 이름입니다.

**예제**

```
DROP TABLE my_keyspace.my_table;
```