

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

# Amazon Keyspaces(Apache Cassandra용)의 TTL(Time to Live)을 사용하여 데이터 만료
<a name="TTL"></a>

Amazon Keyspaces(Apache Cassandra용) TTL(Time To Live)을 통해 테이블의 데이터를 자동으로 만료시켜 애플리케이션 로직을 간소화하고 스토리지 가격을 최적화할 수 있습니다. 더 이상 필요하지 않은 데이터는 설정한 TTL 값에 따라 테이블에서 자동으로 삭제됩니다.

따라서 데이터 보존 기간을 정의하거나 데이터 삭제 시기를 지정하는 비즈니스, 업계 또는 규제 요구 사항을 기반으로 하는 데이터 보존 정책을 보다 쉽게 준수할 수 있습니다.

예를 들어 AdTech 애플리케이션에서 TTL을 사용하여 특정 광고의 데이터가 만료되어 고객에게 더 이상 표시되지 않는 시기를 예약할 수 있습니다. 또한 TTL을 사용하여 오래된 데이터를 자동으로 폐기하고 스토리지 비용을 절약할 수 있습니다.

전체 테이블에 기본 TTL 값을 설정하고 개별 행과 열에 해당 값을 덮어쓸 수 있습니다. TTL 작업은 애플리케이션 성능에 영향을 주지 않습니다. 또한 TTL로 만료되도록 표시된 행과 열의 수는 테이블 가용성에 영향을 주지 않습니다.

Amazon Keyspaces는 만료된 데이터를 자동으로 필터링하여 만료된 데이터가 쿼리 결과에 반환되거나 데이터 조작 언어(DML) 문에 사용할 수 없도록 합니다. Amazon Keyspaces는 일반적으로 만료 날짜로부터 10일 이내에 스토리지에서 만료된 데이터를 삭제합니다.

드문 경우이긴 하지만 가용성 보호를 위해 기본 스토리지 파티션에 지속적인 활동이 있는 경우 Amazon Keyspaces가 10일 이내에 데이터를 삭제하지 못할 수도 있습니다. 이러한 경우 Amazon Keyspaces는 파티션의 트래픽이 감소하면 만료된 데이터를 계속 삭제하려고 시도합니다.

데이터를 스토리지에서 영구적으로 삭제한 후에는 스토리지 요금 발생이 중지됩니다.

콘솔, Cassandra 쿼리 언어(CQL) 또는 AWS CLI를 사용하여 새 테이블과 기존 테이블의 기본 TTL 설정을 지정, 수정 또는 비활성화할 수 있습니다.

기본 TTL이 구성된 테이블에서 CQL 문을 사용하여 테이블의 기본 TTL 설정을 재정의하고 사용자 지정 TTL 값을 행과 열에 적용할 수 있습니다. 자세한 내용은 [`INSERT` 문을 사용하여 새 행에 대한 사용자 지정 TTL(Time to Live) 값을 설정합니다.](TTL-how-to-insert-cql.md) 및 [`UPDATE` 문을 사용하여 행과 열에 대한 사용자 지정 TTL(Time to Live) 설정을 편집합니다.](TTL-how-to-update-cql.md) 섹션을 참조하세요.

TTL 요금은 TTL(Time To Live)을 사용하여 삭제되거나 업데이트되는 행의 크기를 기준으로 책정됩니다. TTL 연산은 `TTL deletes` 단위로 측정됩니다. 삭제되거나 업데이트된 행당 데이터 KB당 TTL 삭제 1회가 사용됩니다.

예를 들어 2.5KB의 데이터를 저장하는 행을 업데이트하고 행 내에서 하나 이상의 열을 동시에 삭제하려면 3 TTL deletes가 필요합니다. 또는 3.5KB의 데이터가 포함된 행 전체를 삭제하려면 4 TTL deletes가 필요합니다.

행당 삭제된 데이터 KB당 TTL 삭제 1회가 사용됩니다. 요금에 대한 자세한 내용은 [Amazon Keyspaces(Apache Cassandra용) 요금](https://aws.amazon.com/keyspaces/pricing)을 참조하세요.

**Topics**
+ [Amazon Keyspaces Time to Live 및 AWS 서비스와의 통합](#ttl-howitworks_integration)
+ [기본 TTL(Time To Live) 설정으로 새 테이블 생성](TTL-how-to-create-table.md)
+ [테이블의 기본 TTL(Time to Live) 값 업데이트](TTL-how-to-update-default.md)
+ [사용자 지정 TTL(Time to Live) 설정이 활성화된 테이블 생성](TTL-how-to-enable-custom-new.md)
+ [사용자 지정 TTL(Time to Live)로 테이블 업데이트](TTL-how-to-enable-custom-alter.md)
+ [`INSERT` 문을 사용하여 새 행에 대한 사용자 지정 TTL(Time to Live) 값을 설정합니다.](TTL-how-to-insert-cql.md)
+ [`UPDATE` 문을 사용하여 행과 열에 대한 사용자 지정 TTL(Time to Live) 설정을 편집합니다.](TTL-how-to-update-cql.md)

## Amazon Keyspaces Time to Live 및 AWS 서비스와의 통합
<a name="ttl-howitworks_integration"></a>

Amazon CloudWatch에서는 다음과 같은 TTL 지표를 사용하여 지속적인 모니터링을 지원합니다.
+ `TTLDeletes` - TTL(Time To Live)을 사용하여 행의 데이터를 삭제하거나 업데이트하는 데 사용되는 단위입니다.

CloudWatch 지표를 모니터링하는 방법에 대한 자세한 내용은 [Amazon CloudWatch를 사용하여 Amazon Keyspaces 모니터링](monitoring-cloudwatch.md) 섹션을 참조하세요.

를 사용하면 Amazon Keyspaces 테이블을 생성할 때 TTL을 켤 CloudFormation수 있습니다. 자세한 내용은 [AWS CloudFormation 사용 설명서](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html)를 참조하십시오.

# 기본 TTL(Time To Live) 설정으로 새 테이블 생성
<a name="TTL-how-to-create-table"></a>

Amazon Keyspaces에서는 테이블 생성 시 테이블의 모든 행에 대해 기본 TTL 값을 설정할 수 있습니다.

테이블의 기본 TTL 값은 0이며, 이는 데이터가 자동으로 만료되지 않음을 의미합니다. 테이블의 기본 TTL 값이 0보다 크면 각 행에 만료 타임스탬프가 추가됩니다.

TTL 값은 초 단위로 설정되며 구성 가능한 최댓값은 630,720,000초로 20년에 해당합니다.

테이블을 생성한 후 특정 행 또는 열에 대한 테이블의 기본 TTL 설정을 CQL DML 문으로 덮어쓸 수 있습니다. 자세한 내용은 [`INSERT` 문을 사용하여 새 행에 대한 사용자 지정 TTL(Time to Live) 값을 설정합니다.](TTL-how-to-insert-cql.md) 및 [`UPDATE` 문을 사용하여 행과 열에 대한 사용자 지정 TTL(Time to Live) 설정을 편집합니다.](TTL-how-to-update-cql.md) 섹션을 참조하세요.

테이블에서 TTL을 활성화하면 Amazon Keyspaces가 각 행에 대해 추가 TTL 관련 메타데이터를 저장하기 시작합니다. 또한 TTL은 만료 타임스탬프를 사용하여 행 또는 열이 만료되는 시기를 추적합니다. 타임스탬프는 행 메타데이터로 저장되며 행의 스토리지 비용에 영향을 줍니다.

 TTL 기능이 활성화된 후에는 테이블에 대해 이 기능을 비활성화할 수 없습니다. 테이블의 `default_time_to_live`를 0으로 설정하면 새 데이터에 대한 기본 만료 시간이 비활성화되지만 TTL 기능이 비활성화되거나 테이블을 원래 Amazon Keyspaces 스토리지 메타데이터 또는 쓰기 동작으로 되돌리지는 않습니다.

다음 예제에서는 기본 TTL 값을 사용하여 새 테이블을 생성하는 방법을 보여줍니다.

------
#### [ Console ]

**콘솔을 사용하여 Time to Live 기본값으로 새 테이블을 생성합니다.**

1. 에 로그인 AWS Management Console하고 [https://console.aws.amazon.com/keyspaces/home](https://console.aws.amazon.com/keyspaces/home) Amazon Keyspaces 콘솔을 엽니다.

1. 탐색 창에서 **테이블**을 선택한 다음 **테이블 생성**을 선택합니다.

1. **테이블 세부 정보** 섹션의 **테이블 생성** 페이지에서 키스페이스를 선택하고 새 테이블의 이름을 입력합니다.

1. **스키마** 섹션에서 테이블의 스키마를 생성합니다.

1. **테이블 설정** 섹션에서 **설정 사용자 지정**을 선택합니다.

1. **TTL(Time To Live)**을 계속합니다.

   이 단계에서는 테이블의 기본 TTL 설정을 선택합니다.

   **기본 TTL 기간**의 경우 만료 시간을 입력하고 입력한 시간 단위(예: 초, 일 또는 년)를 선택합니다. Amazon Keyspaces는 초 단위로 값을 저장합니다.

1. **테이블 생성**을 선택합니다. 테이블은 지정된 기본 TTL 값으로 생성됩니다.

------
#### [ Cassandra Query Language (CQL) ]

**CQL을 사용하여 기본 TTL 값으로 새 테이블 생성**

1. 다음 문은 기본 TTL 값이 35일을 나타내는 3,024,000초로 설정된 새 테이블을 생성합니다.

   ```
   CREATE TABLE my_table (
                   userid uuid,
                   time timeuuid,
                   subject text,
                   body text,
                   user inet,
                   PRIMARY KEY (userid, time)
                   ) WITH default_time_to_live = 3024000;
   ```

1. 새 테이블의 TTL 설정을 확인하려면 다음 예와 같이 `cqlsh` `DESCRIBE` 문을 사용합니다. 출력에는 테이블의 기본 TTL 설정이 `default_time_to_live`로 표시됩니다.

   ```
   DESC TABLE my_table;
   ```

   ```
   CREATE TABLE my_keyspace.my_table (
       userid uuid,
       time timeuuid,
       body text,
       subject text,
       user inet,
       PRIMARY KEY (userid, time)
   ) WITH CLUSTERING ORDER BY (time ASC)
       AND bloom_filter_fp_chance = 0.01
       AND caching = {'class': 'com.amazonaws.cassandra.DefaultCaching'}
       AND comment = ''
       AND compaction = {'class': 'com.amazonaws.cassandra.DefaultCompaction'}
       AND compression = {'class': 'com.amazonaws.cassandra.DefaultCompression'}
       AND crc_check_chance = 1.0
       AND dclocal_read_repair_chance = 0.0
       AND default_time_to_live = 3024000
       AND gc_grace_seconds = 7776000
       AND max_index_interval = 2048
       AND memtable_flush_period_in_ms = 3600000
       AND min_index_interval = 128
       AND read_repair_chance = 0.0
       AND speculative_retry = '99PERCENTILE';
   ```

------
#### [ CLI ]

**를 사용하여 기본 TTL 값으로 새 테이블 생성 AWS CLI**

1. 다음 명령을 사용하여 기본 TTL 값이 1년으로 설정된 새 테이블을 생성할 수 있습니다.

   ```
   aws keyspaces create-table --keyspace-name 'myKeyspace' --table-name 'myTable' \
               --schema-definition 'allColumns=[{name=id,type=int},{name=name,type=text},{name=date,type=timestamp}],partitionKeys=[{name=id}]' \
               --default-time-to-live '31536000'
   ```

1. 테이블의 TTL 상태를 확인하려면 다음 명령을 사용할 수 있습니다.

   ```
   aws keyspaces get-table --keyspace-name 'myKeyspace' --table-name 'myTable'
   ```

   명령의 출력은 다음 예제와 같습니다.

   ```
   {
       "keyspaceName": "myKeyspace",
       "tableName": "myTable",
       "resourceArn": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/myKeyspace/table/myTable",
       "creationTimestamp": "2024-09-02T10:52:22.190000+00:00",
       "status": "ACTIVE",
       "schemaDefinition": {
           "allColumns": [
               {
                   "name": "id",
                   "type": "int"
               },
               {
                   "name": "date",
                   "type": "timestamp"
               },
               {
                   "name": "name",
                   "type": "text"
               }
           ],
           "partitionKeys": [
               {
                   "name": "id"
               }
           ],
           "clusteringKeys": [],
           "staticColumns": []
       },
       "capacitySpecification": {
           "throughputMode": "PAY_PER_REQUEST",
           "lastUpdateToPayPerRequestTimestamp": "2024-09-02T10:52:22.190000+00:00"
       },
       "encryptionSpecification": {
           "type": "AWS_OWNED_KMS_KEY"
       },
       "pointInTimeRecovery": {
           "status": "DISABLED"
       },
       "ttl": {
           "status": "ENABLED"
       },
       "defaultTimeToLive": 31536000,
       "comment": {
           "message": ""
       },
       "replicaSpecifications": []
   }
   ```

------

# 테이블의 기본 TTL(Time to Live) 값 업데이트
<a name="TTL-how-to-update-default"></a>

기존 테이블을 새 기본 TTL 값으로 업데이트할 수 있습니다. TTL 값은 초 단위로 설정되며 구성 가능한 최댓값은 630,720,000초로 20년에 해당합니다.

테이블에서 TTL을 활성화하면 Amazon Keyspaces가 각 행에 대해 추가 TTL 관련 메타데이터를 저장하기 시작합니다. 또한 TTL은 만료 타임스탬프를 사용하여 행 또는 열이 만료되는 시기를 추적합니다. 타임스탬프는 행 메타데이터로 저장되며 행의 스토리지 비용에 영향을 줍니다.

테이블에 TTL이 활성화된 후 특정 행 또는 열에 대한 테이블의 기본 TTL 설정을 CQL DML 문으로 덮어쓸 수 있습니다. 자세한 내용은 [`INSERT` 문을 사용하여 새 행에 대한 사용자 지정 TTL(Time to Live) 값을 설정합니다.](TTL-how-to-insert-cql.md) 및 [`UPDATE` 문을 사용하여 행과 열에 대한 사용자 지정 TTL(Time to Live) 설정을 편집합니다.](TTL-how-to-update-cql.md) 섹션을 참조하세요.

 TTL 기능이 활성화된 후에는 테이블에 대해 이 기능을 비활성화할 수 없습니다. 테이블의 `default_time_to_live`를 0으로 설정하면 새 데이터에 대한 기본 만료 시간이 비활성화되지만 TTL 기능이 비활성화되거나 테이블을 원래 Amazon Keyspaces 스토리지 메타데이터 또는 쓰기 동작으로 되돌리지는 않습니다.

다음 단계에 따라 콘솔, CQL 또는 AWS CLI를 사용하여 기존 테이블에 대한 기본 TTL(Time To Live) 설정을 업데이트합니다.

------
#### [ Console ]

**콘솔을 사용하여 테이블의 기본 TTL 값 업데이트**

1. 에 로그인 AWS Management Console하고 [https://console.aws.amazon.com/keyspaces/home](https://console.aws.amazon.com/keyspaces/home) Amazon Keyspaces 콘솔을 엽니다.

1. 업데이트할 테이블을 선택한 다음 **추가 설정** 탭을 선택합니다.

1. **TTL(Time To Live)**을 계속하고 **편집**을 선택합니다.

1. **기본 TTL 기간**의 경우 만료 시간을 입력하고 시간 단위(예: 초, 일 또는 년)를 선택합니다. Amazon Keyspaces는 초 단위로 값을 저장합니다. 이렇게 해도 기존 행의 TTL 값은 변경되지 않습니다.

1. TTL 설정이 정의되면 **변경 내용 저장**을 선택합니다.

------
#### [ Cassandra Query Language (CQL) ]

**CQL을 사용하여 테이블의 기본 TTL 값 업데이트**

1. `ALTER TABLE`를 사용하여 테이블의 기본 TTL(Time to Live) 설정을 편집할 수 있습니다. 테이블의 기본 TTL 설정을 30일을 나타내는 2,592,000초로 업데이트하려면 다음 문을 사용할 수 있습니다.

   ```
   ALTER TABLE my_table WITH default_time_to_live = 2592000;
   ```

1. 업데이트된 테이블의 TTL 설정을 확인하려면 다음 예와 같이 `cqlsh` `DESCRIBE` 문을 사용합니다. 출력에는 테이블의 기본 TTL 설정이 `default_time_to_live`로 표시됩니다.

   ```
   DESC TABLE my_table;
   ```

   문의 출력은 이 예제와 비슷해야 합니다.

   ```
   CREATE TABLE my_keyspace.my_table (
       id int PRIMARY KEY,
       date timestamp,
       name text
   ) WITH bloom_filter_fp_chance = 0.01
       AND caching = {'class': 'com.amazonaws.cassandra.DefaultCaching'}
       AND comment = ''
       AND compaction = {'class': 'com.amazonaws.cassandra.DefaultCompaction'}
       AND compression = {'class': 'com.amazonaws.cassandra.DefaultCompression'}
       AND crc_check_chance = 1.0
       AND dclocal_read_repair_chance = 0.0
       AND default_time_to_live = 2592000
       AND gc_grace_seconds = 7776000
       AND max_index_interval = 2048
       AND memtable_flush_period_in_ms = 3600000
       AND min_index_interval = 128
       AND read_repair_chance = 0.0
       AND speculative_retry = '99PERCENTILE';
   ```

------
#### [ CLI ]

**를 사용하여 테이블의 기본 TTL 값 업데이트 AWS CLI**

1. `update-table`을 사용하여 테이블의 기본 TTL 값을 편집할 수 있습니다. 테이블의 기본 TTL 설정을 30일을 나타내는 2,592,000초로 업데이트하려면 다음 문을 사용할 수 있습니다.

   ```
   aws keyspaces update-table --keyspace-name 'myKeyspace' --table-name 'myTable' --default-time-to-live '2592000'
   ```

1. 업데이트된 기본 TTL 값을 확인하려면 다음 문을 사용할 수 있습니다.

   ```
   aws keyspaces get-table --keyspace-name 'myKeyspace' --table-name 'myTable'
   ```

   문의 출력은 다음 예제와 비슷해야 합니다.

   ```
   {
       "keyspaceName": "myKeyspace",
       "tableName": "myTable",
       "resourceArn": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/myKeyspace/table/myTable",
       "creationTimestamp": "2024-09-02T10:52:22.190000+00:00",
       "status": "ACTIVE",
       "schemaDefinition": {
           "allColumns": [
               {
                   "name": "id",
                   "type": "int"
               },
               {
                   "name": "date",
                   "type": "timestamp"
               },
               {
                   "name": "name",
                   "type": "text"
               }
           ],
           "partitionKeys": [
               {
                   "name": "id"
               }
           ],
           "clusteringKeys": [],
           "staticColumns": []
       },
       "capacitySpecification": {
           "throughputMode": "PAY_PER_REQUEST",
           "lastUpdateToPayPerRequestTimestamp": "2024-09-02T10:52:22.190000+00:00"
       },
       "encryptionSpecification": {
           "type": "AWS_OWNED_KMS_KEY"
       },
       "pointInTimeRecovery": {
           "status": "DISABLED"
       },
       "ttl": {
           "status": "ENABLED"
       },
       "defaultTimeToLive": 2592000,
       "comment": {
           "message": ""
       },
       "replicaSpecifications": []
   }
   ```

------

# 사용자 지정 TTL(Time to Live) 설정이 활성화된 테이블 생성
<a name="TTL-how-to-enable-custom-new"></a>

전체 테이블에 대해 TTL 기본 설정을 활성화하지 않고 행과 열에 적용할 수 있는 TTL(Time To Live) 사용자 정의 설정으로 새 테이블을 생성하려면 다음 명령을 사용할 수 있습니다.

**참고**  
`ttl` 사용자 지정 설정이 활성화된 테이블을 생성한 경우 나중에 설정을 비활성화할 수 없습니다.

------
#### [ Cassandra Query Language (CQL) ]

**CQL을 사용하여 사용자 지정 TTL 설정으로 새 테이블 생성**
+ 

  ```
  CREATE TABLE my_keyspace.my_table (id int primary key) WITH CUSTOM_PROPERTIES={'ttl':{'status': 'enabled'}};
  ```

------
#### [ CLI ]

**를 사용하여 사용자 지정 TTL 설정으로 새 테이블 생성 AWS CLI**

1. 다음 명령을 사용하여 TTL이 활성화된 새 테이블을 생성할 수 있습니다.

   ```
   aws keyspaces create-table --keyspace-name 'myKeyspace' --table-name 'myTable' \
                                   --schema-definition 'allColumns=[{name=id,type=int},{name=name,type=text}, {name=date,type=timestamp}],partitionKeys=[{name=id}]' \
                                   --ttl 'status=ENABLED'
   ```

1. 테이블에 대해 TTL이 활성화되어 있는지 확인하려면 다음 문을 사용할 수 있습니다.

   ```
   aws keyspaces get-table --keyspace-name 'myKeyspace' --table-name 'myTable'
   ```

   문의 출력은 다음 예제와 비슷해야 합니다.

   ```
   {
       "keyspaceName": "myKeyspace",
       "tableName": "myTable",
       "resourceArn": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/myKeyspace/table/myTable",
       "creationTimestamp": "2024-09-02T10:52:22.190000+00:00",
       "status": "ACTIVE",
       "schemaDefinition": {
           "allColumns": [
            {
                   "name": "id",
                   "type": "int"
               },
               {
                   "name": "date",
                   "type": "timestamp"
               },
               {
                   "name": "name",
                   "type": "text"
               }
           ],
           "partitionKeys": [
               {
                   "name": "id"
               }
           ],
           "clusteringKeys": [],
           "staticColumns": []
       },
       "capacitySpecification": {
           "throughputMode": "PAY_PER_REQUEST",
           "lastUpdateToPayPerRequestTimestamp": "2024-09-02T11:18:55.796000+00:00"
       },
       "encryptionSpecification": {
           "type": "AWS_OWNED_KMS_KEY"
       },
       "pointInTimeRecovery": {
           "status": "DISABLED"
       },
       "ttl": {
           "status": "ENABLED"
       },
       "defaultTimeToLive": 0,
       "comment": {
           "message": ""
       },
       "replicaSpecifications": []
   }
   ```

------

# 사용자 지정 TTL(Time to Live)로 테이블 업데이트
<a name="TTL-how-to-enable-custom-alter"></a>

전체 테이블에 대한 TTL 기본값을 설정하지 않고 개별 행과 열에 TTL 값을 적용할 수 있도록 테이블에 대한 TTL(Time to Live) 사용자 지정 설정을 활성화하려면 다음 명령을 사용할 수 있습니다.

**참고**  
`ttl`이 활성화된 후에는 테이블에 대해 이 설정을 비활성화할 수 없습니다.

------
#### [ Cassandra Query Language (CQL) ]

**CQL을 사용하여 테이블에 대한 사용자 지정 TTL 설정 활성화**
+ 

  ```
  ALTER TABLE my_table WITH CUSTOM_PROPERTIES={'ttl':{'status': 'enabled'}};
  ```

------
#### [ CLI ]

**를 사용하여 테이블에 대한 사용자 지정 TTL 설정 활성화 AWS CLI**

1. 다음 명령을 사용하여 테이블의 사용자 지정 TTL 설정을 업데이트할 수 있습니다.

   ```
   aws keyspaces update-table --keyspace-name 'myKeyspace' --table-name 'myTable' --ttl 'status=ENABLED'
   ```

1. 이제 테이블에 대해 TTL이 활성화되어 있는지 확인하려면 다음 문을 사용할 수 있습니다.

   ```
   aws keyspaces get-table --keyspace-name 'myKeyspace' --table-name 'myTable'
   ```

   문의 출력은 다음 예제와 비슷해야 합니다.

   ```
   {
       "keyspaceName": "myKeyspace",
       "tableName": "myTable",
       "resourceArn": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/myKeyspace/table/myTable",
       "creationTimestamp": "2024-09-02T11:32:27.349000+00:00",
       "status": "ACTIVE",
       "schemaDefinition": {
           "allColumns": [
               {
                   "name": "id",
                   "type": "int"
               },
               {
                   "name": "date",
                   "type": "timestamp"
               },
               {
                   "name": "name",
                   "type": "text"
               }
           ],
           "partitionKeys": [
               {
                   "name": "id"
               }
           ],
           "clusteringKeys": [],
           "staticColumns": []
       },
       "capacitySpecification": {
           "throughputMode": "PAY_PER_REQUEST",
           "lastUpdateToPayPerRequestTimestamp": "2024-09-02T11:32:27.349000+00:00"
       },
       "encryptionSpecification": {
           "type": "AWS_OWNED_KMS_KEY"
       },
       "pointInTimeRecovery": {
           "status": "DISABLED"
       },
       "ttl": {
           "status": "ENABLED"
       },
       "defaultTimeToLive": 0,
       "comment": {
           "message": ""
       },
       "replicaSpecifications": []
   }
   ```

------

# `INSERT` 문을 사용하여 새 행에 대한 사용자 지정 TTL(Time to Live) 값을 설정합니다.
<a name="TTL-how-to-insert-cql"></a>

**참고**  
`INSERT` 문을 사용하여 행에 대한 사용자 지정 TTL 값을 설정하려면 먼저 테이블에서 사용자 지정 TTL을 활성화해야 합니다. 자세한 내용은 [사용자 지정 TTL(Time to Live)로 테이블 업데이트](TTL-how-to-enable-custom-alter.md) 단원을 참조하십시오.

개별 행의 만료 날짜를 설정하여 테이블의 기본 TTL 값을 덮어쓰려면 `INSERT` 문을 사용할 수 있습니다.
+ `INSERT` - TTL 값이 설정된 새 데이터 행을 삽입합니다.

새 행에서 `INSERT` 문을 사용한 TTL 값 설정은 테이블의 기본 TTL 설정보다 우선합니다.

다음 CQL 문은 테이블에 데이터 행을 삽입하고 기본 TTL 설정을 259,200초(3일에 해당)로 변경합니다.

```
INSERT INTO my_table (userid, time, subject, body, user)
        VALUES (B79CB3BA-745E-5D9A-8903-4A02327A7E09, 96a29100-5e25-11ec-90d7-b5d91eceda0a, 'Message', 'Hello','205.212.123.123')
        USING TTL 259200;
```

삽입된 행의 TTL 설정을 확인하려면 다음 문을 사용합니다.

```
SELECT TTL (subject) from my_table;
```

# `UPDATE` 문을 사용하여 행과 열에 대한 사용자 지정 TTL(Time to Live) 설정을 편집합니다.
<a name="TTL-how-to-update-cql"></a>

**참고**  
행과 열에 사용자 지정 TTL 값을 설정하기 전에 먼저 테이블에서 TTL을 활성화해야 합니다. 자세한 내용은 [사용자 지정 TTL(Time to Live)로 테이블 업데이트](TTL-how-to-enable-custom-alter.md) 단원을 참조하십시오.

`UPDATE` 문으로 개별 행 및 열의 만료 날짜를 설정하여 테이블의 기본 TTL 값을 덮어쓸 수 있습니다.
+ 행 - 기존 데이터 행을 사용자 지정 TTL 값으로 업데이트할 수 있습니다.
+ 열 - 기존 행 내의 열 하위 집합을 사용자 지정 TTL 값으로 업데이트할 수 있습니다.

행과 열의 TTL 값 설정은 테이블의 기본 TTL 설정보다 우선합니다.

이전에 삽입한 '제목' 열의 TTL 설정을 259,200초(3일)에서 86,400초(1일)로 변경하려면 다음 문을 사용합니다.

```
UPDATE my_table USING TTL 86400 set subject = 'Updated Message' WHERE userid = B79CB3BA-745E-5D9A-8903-4A02327A7E09 and time = 96a29100-5e25-11ec-90d7-b5d91eceda0a;
```

간단한 선택 쿼리를 실행하여 만료 시간 전에 업데이트된 레코드를 볼 수 있습니다.

```
SELECT * from my_table;
```

쿼리는 다음 출력을 보여 줍니다.

```
userid                               | time                                 | body  | subject         | user
--------------------------------------+--------------------------------------+-------+-----------------+-----------------
b79cb3ba-745e-5d9a-8903-4a02327a7e09  | 96a29100-5e25-11ec-90d7-b5d91eceda0a | Hello | Updated Message | 205.212.123.123
50554d6e-29bb-11e5-b345-feff819cdc9f  | cf03fb21-59b5-11ec-b371-dff626ab9620 | Hello |         Message | 205.212.123.123
```

만료가 성공적으로 완료되었는지 확인하려면 구성된 만료 시간 이후에 동일한 쿼리를 다시 실행합니다.

```
SELECT * from my_table;
```

쿼리는 '제목' 열이 만료된 후 다음과 같은 출력을 표시합니다.

```
userid                               | time                                 | body  | subject | user
--------------------------------------+--------------------------------------+-------+---------+-----------------
b79cb3ba-745e-5d9a-8903-4a02327a7e09  | 96a29100-5e25-11ec-90d7-b5d91eceda0a | Hello |    null | 205.212.123.123
50554d6e-29bb-11e5-b345-feff819cdc9f  | cf03fb21-59b5-11ec-b371-dff626ab9620 | Hello | Message | 205.212.123.123
```