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
-
- 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
-
使用更新表的默认 TTL 值 Amazon 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:111122223333:/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": []
}