更新表的默认生存时间 (TTL) 值 - Amazon Keyspaces(Apache Cassandra 兼容)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

更新表的默认生存时间 (TTL) 值

您可以使用新的默认TTL值更新现有表。TTL值以秒为单位设置,最大可配置值为 630,720,000 秒,相当于 20 年。

当您在表TTL上启用时,Amazon Keyspaces 开始为每行存储其他TTL相关的元数据。此外,还TTL使用到期时间戳来跟踪行或列的过期时间。时间戳存储为行的元数据,并占该行的存储成本。

启用表TTL后,您可以使用CQLDML语句覆盖表中特定行或列的默认TTL设置。有关更多信息,请参阅使用INSERT语句为新行设置自定义 Time to Live (TTL) 值使用UPDATE语句编辑行和列的自定义 Time to Live (TTL) 设置

启用该TTL功能后,您无法为表格禁用该功能。default_time_to_live将表设置为 0 会禁用新数据的默认过期时间,但不会停用该TTL功能,也不会将表恢复到原来的 Amazon Keyspaces 存储元数据或写入行为。

按照以下步骤使用控制台更新现有表格的默认 Time to Live 设置CQL,或 AWS CLI.

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

  2. 选择要更新的表,然后选择其他设置选项卡。

  3. 继续选择 Time to Live (TTL),然后选择编辑

  4. 对于默认时TTL段,输入到期时间并选择时间单位,例如秒、天或年。Amazon Keyspaces 将在几秒钟内存储值。这不会更改现有行的TTL值。

  5. 定义TTL设置后,选择保存更改

Cassandra Query Language (CQL)
使用更新表的默认TTL值 CQL
  1. 您可以使用ALTER TABLE编辑表格的默认 Time to Live (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": [] }