根据PK设置ttl

时间:2019-06-10 16:26:45

标签: amazon-dynamodb

DynamoDB具有一项功能,可让您基于PK + SK设置ttl,我想知道它如何仅基于PK支持ttl。 是否可以设置一个适用于PK所有条目的ttl?

我目前每天都在执行一些定时任务,以删除旧数据。

如果dynamodb具有这种基于PK的ttl功能并且不消耗容量,那将会很甜。

1 个答案:

答案 0 :(得分:0)

我不知道DyanamoDb中的任何功能,该功能允许您专门根据哈希/范围键使项目过期。 dynamo的TTL功能不是直接基于哈希键和/或Range键,您可以选择任何可能出现在商品中的属性作为TTL属性(可以是哈希键,范围键或表中项目上可能存在的任何其他非键属性)-之所以说可能存在,是因为它不需要在所有项目上都存在(不需要任何TTL属性将被忽略(即永不过期)。您选择一个(并且只有一个-而不是多个)属性,然后Dynamo将使用该属性来确定项目是否应该自动过期,并且当它们这样做时,它们会被自动删除(就像您自己提交DeleteItem一样)。请注意,自动清理本身并不是立即进行的,它可能需要48小时才能真正删除过期的项目。

您选择的TTL属性必须只是采用纪元时间格式(即标准的Unix时间戳),因此,在您的情况下,如果现有的HashKey是时间戳,则只需将其用作TTL属性即可。我想情况并非如此,因此您最好的选择可能是添加一个timestamp属性,以标准的unix-timestamp格式定义项目的创建时间,然后使用该属性将表配置为TTL属性。

有关TTL功能,如何配置等的更多信息,可以在这里找到:

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/TTL.html