

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# デフォルトの有効期限 (TTL) を設定した新規テーブルを作成する
<a name="TTL-how-to-create-table"></a>

Amazon Keyspaces では、テーブルの作成時に、テーブルのすべての行にデフォルトの TTL 値を設定することができます。

テーブルのデフォルト TTL 値はゼロです。つまり、データは自動的に期限切れになりません。テーブルのデフォルト TTL 値がゼロより大きい場合、各行に有効期限タイムスタンプが追加されます。

TTL 値は秒単位で設定され、設定可能な最大値は 630,720,000 秒で、これは 20 年に相当します。

テーブルを作成した後で、CQL DML ステートメントを使用して、特定の行または列に対してテーブルのデフォルトの TTL 設定を上書きできます。詳細については、「[`INSERT` ステートメントを使用して新しい行のカスタムの有効期限 (TTL) 値を設定する](TTL-how-to-insert-cql.md)」および「[`UPDATE` ステートメントを使用して行と列のカスタム有効期限 (TTL) 設定を編集する](TTL-how-to-update-cql.md)」を参照してください。

テーブルで TTL を有効にすると、Amazon Keyspaces により各行の追加の TTL 関連メタデータの保存が開始されます。さらに、TTL により有効期限タイムスタンプが使用されて、行または列の有効期限が切れる時期が追跡されます。タイムスタンプは、行メタデータとして保存されるため、行のストレージコストに関係します。

 TTL 機能は、いったん有効化されると、テーブルに対して無効化することはできません。テーブルの `default_time_to_live` を 0 に設定すると、新しいデータのデフォルトの有効期限は無効になりますが、TTL 機能は非アクティブにならず、テーブルが元の Amazon Keyspaces ストレージメタデータや書き込み動作に戻ることもありません。

次の例では、デフォルトの TTL 値を設定した新規テーブルの作成方法を示しています。

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

**コンソールを使用してデフォルトの TTL 値を設定した新規テーブルを作成する**

1. にサインインし AWS マネジメントコンソール、[https://console.aws.amazon.com/keyspaces/home](https://console.aws.amazon.com/keyspaces/home) で Amazon Keyspaces コンソールを開きます。

1. ナビゲーションペインで [**Tables]** (テーブル) を選択して、[**Create table (テーブルの作成)**] を選択します。

1. [**Table details (テーブルの詳細)**] セクションの [**Create table (テーブルの作成)**] ページで、キースペースを選択し、新しいテーブルに名前を付けます。

1. [**Schema (スキーマ)**] セクションで、テーブルのスキーマを作成します。

1. [**Table settings (テーブルの設定)**] セクションで、[**Customize settings (設定のカスタマイズ)**] を選択します。

1. **有効期限 (TTL)** に進みます。

   このステップでは、テーブルのデフォルトの TTL 設定を選択します。

   **[Default TTL period]** (デフォルト TTL 期間) で、有効期限を入力し、入力したの時間の単位 (秒、日、年など) を選択します。Amazon Keyspaces では、値が秒単位で保存されます。

1. **[テーブルの作成]** を選択します。テーブルは、指定したデフォルトの TTL 値で作成されます。

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

**CQL を使用してデフォルトの TTL 値を設定した新規テーブルを作成する**

1. 次のステートメントでは、デフォルトの TTL 値が 3,024,000 秒 (35 日間) に設定された新規テーブルを作成します。

   ```
   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": []
   }
   ```

------