处理单个分区键时的 DynamoDB TTL 交互

问题描述 投票:0回答:1

我目前有一个包含以下列的表结构:

pk (partition key)
sk (sort key)
attr_1
attr_2
ttl

这里

pk
sk
都是字符串值。
pk
是一个域字符串(想想神奇宝贝名称),
sk
是创建条目时的时间戳表示。下面是一些示例数据:

[pikachu, 2024-01-03 18:00:00, v5, v6, 5th jan 2024 (in its epoch format)]
[pikachu, 2024-01-02 18:00:00, v3, v4, 4th jan 2024 (in its epoch format)]
[pikachu, 2024-01-01 18:00:00, v1, v2, 3rd jan 2024 (in its epoch format)]

所以这里的问题是 - 考虑到我在一个

ttl
上有多个
pk
,最旧的条目(上面第 3 行)是否会在到期时间到期(当然我知道删除不是瞬时的,但你会得到要点)。

我的困惑源于这样一个事实:DynamoDB 的所有

ttl
文档都讨论了某个项目的过期,但就我而言,
pk
是在多个项目之间共享的。对此的任何澄清将不胜感激,干杯。

amazon-dynamodb ttl
1个回答
0
投票

如果是瞬时的,则第 3 行将首先被删除,因为它具有最旧的 TTL 值。

但是,如果时间范围足够接近(秒、分钟、小时),您通常会看到所有项目同时被删除。

如果您正在寻找删除它们的具体顺序,则无法保证。但是,由于 DynamoDB 按排序键的升序存储数据,我假设最年轻的项目将首先删除,然后立即删除其他两个。

© www.soinside.com 2019 - 2024. All rights reserved.