生存时间 (TTL) - Amazon DynamoDB

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

生存时间 (TTL)

DynamoDB 的生存时间 (TTL) 是一种经济实惠的方法,用于删除不再相关的项目。TTL 允许您定义每件商品的过期时间戳,以指示何时不再需要某件商品。DynamoDB 会在过期项目到期后的几天内自动将其删除,而不会消耗写入吞吐量。

要使用 TTL,请先在表上启用它,然后定义一个特定的属性来存储 TTL 过期时间戳。时间戳必须以 Unix 纪元时间格式以秒为粒度存储。每次创建或更新项目时,您都可以计算到期时间并将其保存在 TTL 属性中。

系统可以随时删除具有有效、已过期 TTL 属性的项目,通常是在过期后的几天内。您仍然可以更新待删除的过期商品,包括更改或移除其 TTL 属性。更新过期商品时,我们建议您使用条件表达式来确保该项目随后未被删除。使用筛选表达式从 “扫描” 和 “查询” 结果中移除过期的项目。

已删除邮件的工作原理与通过典型的删除操作删除的邮件类似。删除后,项目会以服务删除而不是用户删除的形式进入 DynamoDB Streams,并像其他删除操作一样从本地二级索引和全局二级索引中删除。

如果您使用的是全局表版本 2019.11.21(当前)的全局表,并且还使用 TTL 功能,则 DynamoDB 会将 TTL 删除复制到所有副本表。初始 TTL 删除不会消耗 TTL 到期区域的写入容量单位 (WCU)。但是,在每个副本区域中,复制到副本表的 TTL 删除操作在使用预置容量时会消耗复制的写入容量单位,或者在使用按需容量模式时消耗复制的写入单元,并且将收取相应的费用。

D@@ ynamoDB Local 允许您在表上启用 TTL、创建 TTL 属性以及为项目设置过期时间,从而帮助您测试代码的 TTL 用例。但是,过期的项目不会从 DynamoDB 本地版中删除。这是因为 DynamoDB Local 目前没有像用于删除过期项目的服务器端进程那样运行后台进程。

有关 TTL 的更多信息,请参阅以下主题: