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