生存时间 (TTL) - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

生存时间 (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 的更多信息,请参阅以下主题: