Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
更新表的默认生存时间(TTL)值
您可以使用新的默认 TTL 值来更新现有表。TTL 值以秒为单位设置,最大可配置值为 630,720,000 秒,相当于 20 年。
当您在表上启用 TTL 时,Amazon Keyspaces 会开始为每行存储其他与 TTL 相关的元数据。此外,TTL 使用过期时间戳来跟踪行或列的过期时间。时间戳存储为行的元数据,并占该行的存储成本。
为表启用 TTL 后,可以使用 CQL DML 语句针对特定行或列覆盖表的默认 TTL 设置。有关更多信息,请参阅使用 INSERT 语句为新行设置自定义生存时间(TTL)值 和使用 UPDATE 语句可编辑行和列的自定义生存时间(TTL)设置。
TTL 功能启用后,无法为表禁用它。将表的 default_time_to_live
设置为 0 会禁用新数据的默认过期时间,但不会停用 TTL 功能,也不会将表恢复到原来的 Amazon Keyspaces 存储元数据或写入行为。
按照以下步骤,使用控制台、CQL 或 Amazon CLI 更新现有表的默认生存时间设置。
- Console
-
使用控制台更新表的默认 TTL 值
-
登录 https://console.aws.amazon.com/keyspaces/home,然后打开 Amazon Web Services Management Console Amazon Keyspaces 控制台。
-
选择要更新的表,然后选择其他设置选项卡。
-
继续选择生存时间 (TTL),然后选择编辑。
-
对于默认 TTL 周期,输入到期时间并选择时间单位,例如秒、天或年。Amazon Keyspaces 将在几秒钟内存储值。这不会更改现有行的 TTL 值。
-
定义 TTL 设置后,选择保存更改。
- Cassandra Query Language (CQL)
-
使用 CQL 更新表的默认 TTL 值
-
您可以使用 ALTER TABLE
编辑表的默认生存时间(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
-
使用 Amazon CLI 更新表的默认 TTL 值
-
可以使用 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": []
}