更新表格的預設存留時間 (TTL) 值 - Amazon Keyspaces (適用於 Apache Cassandra)

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

更新表格的預設存留時間 (TTL) 值

您可以使用新的預設TTL值更新現有資料表。TTL值以秒為單位設定,最大可配置值為 630,720,000 秒,相當於 20 年。

當您在表格TTL上啟用時,Amazon Keyspaces 會開始為每一列儲存其他TTL相關中繼資料。此外,還可TTL使用到期時間戳記來追蹤列或欄到期的時間。時間戳記會儲存為資料列中繼資料,並會增加資料列的儲存成本。

啟用資料表之後TTL,您可以使用CQLDML陳述式覆寫特定列或欄的資料表預TTL設設定。如需詳細資訊,請參閱 使用INSERT陳述式為新列設定自訂存留時間 (TTL) 值使用UPDATE陳述式編輯列和欄的自訂存留時間 (TTL) 設定

啟用此TTL功能後,您無法針對表格停用此功能。將資料表設定default_time_to_live為 0 會停用新資料的預設到期時間,但不會停用該TTL功能或將表格還原回原始 Amazon Keyspaces 儲存中繼資料或寫入行為。

請依照下列步驟使用主控台更新現有表格的預設存留時間設定CQL,或 AWS CLI.

Console
使用控制台更新表的默認TTL值
  1. 登入 AWS Management Console,然後在https://console.aws.amazon.com/keyspaces/家中打開 Amazon Keyspaces 控制台。

  2. 選擇您要更新的表格,然後選擇 [其他設定] 索引標籤。

  3. 繼續至「存留時間」(TTL),然後選擇 「編輯」

  4. 對於預設TTL期間,請輸入到期時間並選擇時間單位,例如秒、天或年。Amazon Keyspaces 將存儲在幾秒鐘內的值。這不會改變現有行的TTL值。

  5. 定義TTL設定後,選擇 [儲存變更]。

Cassandra Query Language (CQL)
使用更新表的默認TTL值 CQL
  1. 您可以使ALTER TABLE用編輯表格的預設存留時間 (TTL) 設定。若要將資料表的預TTL設設定更新為 2,592,000 秒 (代表 30 天),您可以使用下列陳述式。

    ALTER TABLE my_table WITH default_time_to_live = 2592000;
  2. 若要確認已更新資料表的TTL設定,請使用下列範例所示的cqlshDESCRIBE陳述式。輸出將表格的預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設設定更新為 2,592,000 秒 (代表 30 天),您可以使用下列陳述式。

    aws keyspaces update-table --keyspace-name 'myKeyspace' --table-name 'myTable' --default-time-to-live '2592000'
  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": 2592000, "comment": { "message": "" }, "replicaSpecifications": [] }