在 DynamoDB 中使用生存时间(TTL) - Amazon DynamoDB

在 DynamoDB 中使用生存时间(TTL)

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

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

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

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

如果使用全局表的全局表版本 2019.11.21(当前版),并且还使用生存时间特征,则 DynamoDB 会将 TTL 删除复制到所有副本表。在出现 TTL 到期的区域中,初始 TTL 删除不会消耗写入容量单位(WCU)。但是,在每个副本区域中,当使用预置的容量时,复制到副本表的 TTL 删除将消耗一个复制的写入容量单位,或在使用按需容量模式时消耗一个复制的写入容量单位,并且将收取适用的费用。

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