デフォルトの有効期限 (TTL) 設定で新しいテーブルを作成する - Amazon Keyspaces (Apache Cassandra 向け)

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

デフォルトの有効期限 (TTL) 設定で新しいテーブルを作成する

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

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

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

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

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

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

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

Console
コンソールを使用して、有効期限のデフォルト値で新しいテーブルを作成します。
  1. にサインインする AWS Management Console、ホーム で Amazon Keyspaces https://console.aws.amazon.com/keyspaces/コンソールを開きます。

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

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

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

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

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

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

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

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

Cassandra Query Language (CQL)
を使用してTTLデフォルト値で新しいテーブルを作成する CQL
  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;
  2. 新しいテーブルTTLの設定を確認するには、次の例に示すように cqlshDESCRIBEステートメントを使用します。出力には、テーブルの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'
  2. テーブルTTLのステータスを確認するには、次のコマンドを使用します。

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

    コマンドの出力は次の例のようになります。

    { "keyspaceName": "myKeyspace", "tableName": "myTable", "resourceArn": "arn:aws:cassandra:us-east-1:123SAMPLE012:/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": [] }