DynamoDB上的TTL功能可以用作实际删除项目的免费替代方法吗?

问题描述

我已经阅读了有关使用DynamoDB TTL使项目过期的开发人员指南,并且想知道是否有可能使用TTL作为删除的替代方法,而不是除删除之外的其他方法。

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/TTL.html

由于Amazon会在不占用任何写入单位的情况下(为他们方便)删除您的商品,是否有可能像这样完成我的所有删除?这个想法是创建没有TTL的项目,然后将其设置为当前时间而不是删除它们。我知道我必须添加一些逻辑来说明过期但未删除的项目,但是与节省相比,这似乎微不足道。

这可能吗?

解决方法

您是对的,因为这些项目本身将被删除而无需您承担任何费用,这确实使该过程可以免费删除。

从TTL时间开始,删除过程最多可能需要48个小时(这些项目作为后台操作排队),因此您需要确保您的应用程序执行将这些项目过滤掉的逻辑。

根据表的大小和活动级别,过期项目的实际删除操作可能会有所不同。由于TTL是一个后台进程,因此用于通过TTL过期和删除项目的容量的性质是可变的(但免费)。 TTL通常会在过期后48小时内删除过期项。

除非您要删除/更新大量数据,否则您将仅使用DynamoDB表剩余的任何可用WCU。

,

该想法是创建没有TTL的项目,然后代替 删除它们只是将TTL设置为当前时间。

那没有道理,您需要使用WCU来更新项目,不妨删除它。

在创建项目时可以设置TTL时,可以使用TTL免费删除该项目。

如果您有多个GSI,我想用更新设置TTL可能会有用。您只需为表的更新付费,删除将是免费的。而如果您删除表中的记录,则需要为表和GSI付费。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...