DynamoDB条件ttl

chr*_*003 5 java amazon-web-services amazon-dynamodb

DynamoDB是否根据特定条件支持TTL?例如,我希望对具有特定属性的记录启用TTL,而对没有该属性值的记录不启用TTL。

我目前阅读以研究此问题的文档是

  1. http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/howitworks-ttl.html
  2. http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/time-to-live-ttl-how-to.html

两位文档均未对此表示任何具体信息。

谢谢,

小智 12

请记住,DynamoDB是无模式的。所有记录不必具有相同的字段。因此,仅在您希望已过期的记录上创建TTL字段。当记录被更新以满足您的“条件”时,添加TTL字段。


小智 5

TTL 将 DynamoDB 中的非空字段(已设置为 TTL 字段)与当前时间戳进行比较,如果其 TTL 字段早于当前时间戳则删除该项目。

使用 DynamoDB TTL 的典型方法是在数据对象中创建一个字段(可能将其命名为 ExpirationTime),并将其设置为 (currentEpochTime + TimeToLive)。TimeToLive秒后,DynamoDB 将发现小于当前 EpochTime 的值,并执行删除操作(预计会出现一些延迟)。

话虽如此,如果您想在使用该表后通过向原始数据对象添加新字段来启用 TTL。现有数据不会受到影响,因为它们没有该字段。您可能需要运行脚本以将该新字段值添加到所有现有项目,以使 TTL 适用于现有数据。