使用預設存留時間 (TTL) 設定建立新表格 - Amazon Keyspaces (適用於 Apache Cassandra)

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

使用預設存留時間 (TTL) 設定建立新表格

在 Amazon Keyspaces 中,您可以在建立表格時為表格中的所有列設定預設TTL值。

資料表的預設TTL值為零,表示資料不會自動過期。如果資料表的預設TTL值大於零,則會在每一列新增到期時間戳記。

TTL值以秒為單位設定,最大可配置值為 630,720,000 秒,相當於 20 年。

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

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

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

下列範例說明如何使用預設TTL值建立新資料表。

Console
使用主控台建立具有「存留時間」預設值的新資料表。
  1. 登入 AWS Management Console,然後在https://console.aws.amazon.com/keyspaces/家中打開 Amazon Keyspaces 控制台。

  2. 在導覽窗格中,選擇 Tables (資料表),然後選擇 Create table (建立資料表)。

  3. 在「表格詳細資訊」段落的「建立表格」頁面中,選取索引鍵空間並輸入新表格的名稱。

  4. 在「結構描述」區段中,為您的資料表建立結構定義。

  5. [表格設定] 區段中,選擇 [自訂設定]

  6. 繼續前往 「生存時間」(TTL)

    在此步驟中,您可以選取表格的預TTL設設定。

    在「預設TTL期間」中,輸入到期時間並選擇您輸入的時間單位,例如秒、天或年。Amazon Keyspaces 將存儲在幾秒鐘內的值。

  7. 選擇 建立資料表 。您的表是使用指定的默認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值設置為一年的新表。

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