本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用默认生存时间(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
-
通过控制台使用生存时间默认值创建新表。
登录 Amazon Web Services Management Console,然后打开 Amazon Keyspaces 控制台:https://console.aws.amazon.com/keyspaces/home
。 -
在导航窗格中,选择表,然后选择创建表。
-
在创建表页面的表详细信息部分中,选择一个键空间并为新表提供一个名称。
-
在架构部分,为您的表创建架构。
在表设置部分,选择自定义设置。
-
继续设置生存时间 (TTL)。
在此步骤中,您为表选择默认 TTL 设置。
对于默认 TTL 周期,输入到期时间并选择您输入的时间单位,例如秒、天或年。Amazon Keyspaces 将在几秒钟内存储值。
-
选择创建表。系统将使用使用指定的默认 TTL 值创建您的表。
- Cassandra Query Language (CQL)
-
通过 CQL 使用默认 TTL 值创建新表
-
以下语句创建一个新表,默认 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; -
要确认新表的 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 值创建新表
-
您可以使用以下命令创建新表,默认 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'
-
要确认表的 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": [] }
-