每个项目的 DynamoDB 生存时间

DynamoDB time to live per Item

我需要使具有不同生存时间配置的项目过期。在某些情况下,table 中的项目在某些情况下也不会过期。在 Cassandra 中,我们可以在记录级别写入时设置生存时间。在 DynamoDB 中,我只能在 table 级别看到 TimeToLive 配置(我也可能错了。)但在项目级别看不到。

  1. 有没有办法在执行 putItem 时在项目级别设置 TTL 或者
  2. 在对整个系统影响最小的情况下删除记录的最佳做法是什么?

如果无法在项目级别设置 TTL,我想退回到第二个选项。

DynamoDB 绝对可以在 table 中的项目级别做到这一点。在 table 级别配置中,您可以告诉 DynamoDB 将包含 TTL 值的属性的名称。这个属性名可以是任何你想要的。然后,在您写入 table 的每个项目上,您都包含一个名为您告诉 DynamoDB 以秒为单位的纪元时间格式查找值的属性。执行此操作后,当该项目的时间到了时,DynamoDB 将在 24-48 小时内延迟删除该项目。最重要的是,删除对您来说是免费的。

有关如何启用 TTL 的详细信息go here. For more about how TTL works, go here