根据文档:
DynamoDB 通常会在过期后 48 小时内删除过期项目。过期后项目真正被删除的确切持续时间取决于工作负载的性质和表的大小
有什么方法可以估计在某个表中删除过期项目需要多长时间?我希望实现一种基于具有 TTL 的 DynamoDB 表和处理 DynamoDB 流的 Lambda 函数的调度程序,但我需要在项目过期后一小时内删除才能生效。如果表格不大(少于 1.000 个项目),这可能吗?
根据文档:
DynamoDB 通常会在过期后 48 小时内删除过期项目。过期后项目真正被删除的确切持续时间取决于工作负载的性质和表的大小
有什么方法可以估计在某个表中删除过期项目需要多长时间?我希望实现一种基于具有 TTL 的 DynamoDB 表和处理 DynamoDB 流的 Lambda 函数的调度程序,但我需要在项目过期后一小时内删除才能生效。如果表格不大(少于 1.000 个项目),这可能吗?
删除的确切时间不是您应该硬依赖的东西。由于 DynamoDB TTL 使用后台 I/O 容量来处理删除(这可以节省客户资金并保留他们预置的 IOPS 以供其应用程序使用),这将取决于系统中发生的其他情况,可能会有所不同。
尽管指定了 TTL 值,但 AWS 不保证删除的时间。我从与 AWS 工程师的交谈中了解到,跨区域的复制可能是 48 小时时间框架的一个因素。DynamoDB 无法使用 1 小时的时间窗口。检查 Cloudview 日志可能会了解它是如何为您的应用程序工作的,并且需要对 TTL 参数值进行一些调整。