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

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

如何使用生存时间 (TL)

您可以使用 Amazon Keyspaces(Apache Cassandra 兼容)控制台或 CQL 启用、更新和禁用“生存时间”设置。

创建启用了默认生存时间 (TTL) 设置的新表(控制台)

按照以下步骤,使用 Amazon Keyspaces 控制台创建启用了生存时间设置的新表。

  1. 登录 https://console.aws.amazon.com/keyspaces/home,然后打开 Amazon Web Services Management Console Amazon Keyspaces 控制台。

  2. 在导航窗格中,选择 Tables (表),然后选择 Create table (创建表)

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

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

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

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

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

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

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

注意

通过使用 CQL 编辑器中的数据操作语言 (DML),可以覆盖特定行或列的表默认 TTL 设置。

更新现有表的默认生存时间 (TTL) 设置(控制台)

按照以下步骤,使用 Amazon Keyspaces 控制台更新现有表的生存时间设置。

  1. 登录 https://console.aws.amazon.com/keyspaces/home,然后打开 Amazon Web Services Management Console Amazon Keyspaces 控制台。

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

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

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

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

禁用现有表的默认生存时间 (TTL) 设置(控制台)

按照以下步骤使用 Amazon Key Amazon Web Services Management Console禁用现有表的生存时间设置。

  1. 登录 https://console.aws.amazon.com/keyspaces/home,然后打开 Amazon Web Services Management Console Amazon Keyspaces 控制台。

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

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

  4. 选择默认 TTL 周期,并将该值设置为零。这会禁用表中未来数据的默认 TTL。它不会更改现有行的 TTL 值。

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

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

在创建新表时启用 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

describe my_table;

使用 CQL 通过 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

describe my_table;

如何使用自定义属性在新表上启用生存时间 (TTL)

要在不对整个表启用 TTL 默认设置的情况下启用可应用于行和列的生存时间自定义设置,可以使用以下 CQL 语句。

CREATE TABLE my_keyspace.my_table (id int primary key) WITH CUSTOM_PROPERTIES={'ttl':{'status': 'enabled'}};

为表启用 ttl 后便无法禁用该设置。

如何使用自定义属性对现有表启用生存时间 (TTL)

要在不对整个表启用 TTL 默认设置的情况下启用可应用于行和列的生存时间自定义设置,可以使用以下 CQL 语句。

ALTER TABLE my_table WITH CUSTOM_PROPERTIES={'ttl':{'status': 'enabled'}};

为表启用 ttl 后便无法禁用该设置。

使用 CQL 通过 INSERT 编辑自定义生存时间 (TTL) 设置

以下 CQL 语句在表中插入一行数据,并将默认 TTL 设置更改为 259,200 秒(相当于 3 天)。

INSERT INTO my_table (userid, time, subject, body, user) VALUES (B79CB3BA-745E-5D9A-8903-4A02327A7E09, 96a29100-5e25-11ec-90d7-b5d91eceda0a, 'Message', 'Hello','205.212.123.123') USING TTL 259200;

要确认插入行的 TTL 设置,请使用以下语句。

SELECT TTL (subject) from my_table;

使用 CQL 通过 UPDATE 编辑自定义生存时间 (TTL) 设置

要将前面插入的 subject 列的 TTL 设置从 259,200 秒(3 天)改为 86,400 秒(1 天),请使用以下语句。

UPDATE my_table USING TTL 86400 set subject = 'Updated Message' WHERE userid = B79CB3BA-745E-5D9A-8903-4A02327A7E09 and time = 96a29100-5e25-11ec-90d7-b5d91eceda0a;

您可以运行一个简单的选择查询,查看到期时间之前更新的记录。

SELECT * from my_table;

该查询会显示以下输出。

userid | time | body | subject | user --------------------------------------+--------------------------------------+-------+-----------------+----------------- b79cb3ba-745e-5d9a-8903-4a02327a7e09 | 96a29100-5e25-11ec-90d7-b5d91eceda0a | Hello | Updated Message | 205.212.123.123 50554d6e-29bb-11e5-b345-feff819cdc9f | cf03fb21-59b5-11ec-b371-dff626ab9620 | Hello | Message | 205.212.123.123

要确认过期已成功,请在配置的过期时间后再次运行相同的查询。

SELECT * from my_table;

在 subject 列过期后,该查询会显示以下输出。

userid | time | body | subject | user --------------------------------------+--------------------------------------+-------+---------+----------------- b79cb3ba-745e-5d9a-8903-4a02327a7e09 | 96a29100-5e25-11ec-90d7-b5d91eceda0a | Hello | null | 205.212.123.123 50554d6e-29bb-11e5-b345-feff819cdc9f | cf03fb21-59b5-11ec-b371-dff626ab9620 | Hello | Message | 205.212.123.123