本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
更新表的默认生存时间(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 或 AWS CLI更新现有表的默认生存时间设置。
- Console
-
使用控制台更新表的默认 TTL 值
-
登录并打开 Amazon Keyspaces 控制台,网址为。 AWS 管理控制台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 TABLEmy_tableWITH default_time_to_live = 2592000; -
要确认更新后的表的 TTL 设置,请使用的
cqlshDESCRIBE语句,如以下示例所示。输出将该表的默认 TTL 设置显示为default_time_to_live。DESC TABLEmy_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: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": [] }
-