本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
更新表的默认生存时间 (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值
-
登录 AWS Management Console,然后在家中打开 Amazon Keyspaces 控制台。https://console.aws.amazon.com/keyspaces/
-
选择要更新的表,然后选择其他设置选项卡。
-
继续选择 Time to Live (TTL),然后选择编辑。
-
对于默认时TTL段,输入到期时间并选择时间单位,例如秒、天或年。Amazon Keyspaces 将在几秒钟内存储值。这不会更改现有行的TTL值。
-
定义TTL设置后,选择保存更改。
-
- Cassandra Query Language (CQL)
-
使用更新表的默认TTL值 CQL
-
您可以使用
ALTER TABLE
编辑表格的默认 Time to Live (TTL) 设置。要将表的默认TTL设置更新为 2,592,000 秒(即 30 天),可以使用以下语句。ALTER TABLE
my_table
WITH default_time_to_live = 2592000; -
要确认更新后的表的TTL设置,请使用
cqlsh
DESCRIBE
语句,如以下示例所示。输出显示该表的默认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
-
您可以使用
update-table
编辑表格的默认TTL值。要将表的默认TTL设置更新为 2,592,000 秒(即 30 天),可以使用以下语句。aws keyspaces update-table --keyspace-name 'myKeyspace' --table-name 'myTable' --default-time-to-live '2592000'
要确认更新的默认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": [] }
-