View a markdown version of this page

更新表的默认生存时间(TTL)值 - Amazon Keyspaces(Apache Cassandra 兼容)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

更新表的默认生存时间(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 值
  1. 登录并打开 Amazon Keyspaces 控制台,网址为。 AWS 管理控制台https://console.aws.amazon.com/keyspaces/home

  2. 选择要更新的表,然后选择其他设置选项卡。

  3. 继续选择生存时间 (TTL),然后选择编辑

  4. 对于默认 TTL 周期,输入到期时间并选择时间单位,例如秒、天或年。Amazon Keyspaces 将在几秒钟内存储值。这不会更改现有行的 TTL 值。

  5. 定义 TTL 设置后,选择保存更改

Cassandra Query Language (CQL)
使用 CQL 更新表的默认 TTL 值
  1. 您可以使用 ALTER TABLE 编辑表的默认生存时间(TTL)设置。要将表的默认 TTL 设置更新为 2,592,000 秒(代表 30 天),可以使用以下语句。

    ALTER TABLE my_table WITH default_time_to_live = 2592000;
  2. 要确认更新后的表的 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
  1. 可以使用 update-table 编辑表的默认 TTL 值。要将表的默认 TTL 设置更新为 2,592,000 秒(代表 30 天),可以使用以下语句。

    aws keyspaces update-table --keyspace-name 'myKeyspace' --table-name 'myTable' --default-time-to-live '2592000'
  2. 要确认更新的默认 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": [] }