使用默认生存时间(TTL)设置创建新表 - Amazon Keyspaces(Apache Cassandra 兼容)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用默认生存时间(TTL)设置创建新表

在 Amazon Keyspaces 中,您可以在创建表时为表中的所有行设置默认 TTL 值。

表的默认 TTL 值为零,表示数据不会自动过期。如果表的默认 TTL 值大于零,则会为每行添加一个过期时间戳。

TTL 值以秒为单位设置,最大可配置值为 630,720,000 秒,相当于 20 年。

创建表后,可以使用 CQL DML 语句针对特定行或列覆盖表的默认 TTL 设置。有关更多信息,请参阅使用 INSERT 语句为新行设置自定义生存时间(TTL)值使用 UPDATE 语句可编辑行和列的自定义生存时间(TTL)设置

当您在表上启用 TTL 时,Amazon Keyspaces 会开始为每行存储其他与 TTL 相关的元数据。此外,TTL 使用过期时间戳来跟踪行或列的过期时间。时间戳存储为行的元数据,并占该行的存储成本。

TTL 功能启用后,无法为表禁用它。将表的 default_time_to_live 设置为 0 会禁用新数据的默认过期时间,但不会停用 TTL 功能,也不会将表恢复到原来的 Amazon Keyspaces 存储元数据或写入行为。

以下示例说明了如何创建带有默认 TTL 值的新表。

Console
通过控制台使用生存时间默认值创建新表。
  1. 登录 Amazon Web Services Management Console,然后打开 Amazon Keyspaces 控制台:https://console.aws.amazon.com/keyspaces/home

  2. 在导航窗格中,选择,然后选择创建表

  3. 创建表页面的表详细信息部分中,选择一个键空间并为新表提供一个名称。

  4. 架构部分,为您的表创建架构。

  5. 表设置部分,选择自定义设置

  6. 继续设置生存时间 (TTL)

    在此步骤中,您为表选择默认 TTL 设置。

    对于默认 TTL 周期,输入到期时间并选择您输入的时间单位,例如秒、天或年。Amazon Keyspaces 将在几秒钟内存储值。

  7. 选择创建表。系统将使用使用指定的默认 TTL 值创建您的表。

Cassandra Query Language (CQL)
通过 CQL 使用默认 TTL 值创建新表
  1. 以下语句创建一个新表,默认 TTL 值设置为 3,024,000 秒(代表 35 天)。

    CREATE TABLE my_table ( userid uuid, time timeuuid, subject text, body text, user inet, PRIMARY KEY (userid, time) ) WITH default_time_to_live = 3024000;
  2. 要确认新表的 TTL 设置,请使用 cqlsh DESCRIBE 语句,如以下示例所示。输出将该表的默认 TTL 设置显示为 default_time_to_live

    DESC TABLE my_table;
    CREATE TABLE my_keyspace.my_table ( userid uuid, time timeuuid, body text, subject text, user inet, PRIMARY KEY (userid, time) ) WITH CLUSTERING ORDER BY (time ASC) AND 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 = 3024000 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 值创建新表
  1. 您可以使用以下命令创建新表,默认 TTL 值设置为 1 年。

    aws keyspaces create-table --keyspace-name 'myKeyspace' --table-name 'myTable' \ --schema-definition 'allColumns=[{name=id,type=int},{name=name,type=text},{name=date,type=timestamp}],partitionKeys=[{name=id}]' \ --default-time-to-live '31536000'
  2. 要确认表的 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": 31536000, "comment": { "message": "" }, "replicaSpecifications": [] }