问题描述
我已经阅读了有关使用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付费。