DynamoDB是否支持基于特定条件的TTL?例如,我希望在具有特定属性的记录上启用TTL,并且在没有该属性值的记录上没有TTL。
我目前阅读的文档是
答案 0 :(得分:8)
请记住,DynamoDB是无模式的。所有记录不必具有相同的字段。因此,只在您希望过期的记录上创建TTL字段。更新记录时,您的条件为"满足,添加TTL字段。
答案 1 :(得分:1)
TTL将DynamoDB中的非空字段(已设置为TTL字段)与当前时间戳进行比较,如果其TTL字段早于当前时间戳,则删除该项目。
使用DynamoDB TTL的一种典型方法是在数据对象中创建一个字段(可能将其命名为ExpirationTime),将其设置为(currentEpochTime + TimeToLive)。在 TimeToLive 秒之后,DynamoDB将找到小于当前EpochTime的值,并执行删除操作(预计会有一些延迟)。
话虽如此,如果要在使用此表后通过向原始数据对象添加新字段来启用TTL。现有数据不会受到影响,因为它们没有该字段。您可能希望运行脚本以将新字段值添加到所有现有项目,以使TTL适用于现有数据。
答案 2 :(得分:0)
信息不存在,没有这样的功能。
您可以根据您希望在记录上施加的任何条件在记录上创建TTL。如果它与这些条件不匹配,则不要创建TTL或清理现有的TTL。
只有匹配TTL时间戳值或更低时才会删除记录。
我不确定是否需要内置功能。</ p>