繁体   English   中英

Dynamodb 不经常安排的扫描

[英]Dynamodb infrequently scheduled scan

我正在用 nodejs 实现一个 session 表,它将增长到大量项目。 每个 hash 键都是代表用户的 uuid。

为了删除过期的会话,我必须扫描表中的过期属性并删除旧会话。 我计划几天扫描一次,除此之外,我真的不需要高读取能力。

我提出了 2 个解决方案,我想听听有关它们的一些反馈。

1) UpdateTable 只为那个预定的例程增加容量,扫描完成后,只需将表容量减少到它的原始值。

2) 执行扫描,在 x*MB 读取后检索“LastEvaluatedKey”时,创建启动延迟(不消耗所有读取/秒单位),然后使用“ExclusiveStartKey”继续扫描。

如果要进行扫描,则选项1是最好的选择。 这是保证扫描过程中不会影响应用程序性能的唯一真实方法。

您唯一需要确定的就是每天只运行一次此操作-我相信您每天最多只能将DynamoDB表的吞吐量降低2倍(最多)。

这是一个老问题,但是我是通过相关问题看到的。

现在有一个更好的原生解决方案: DynamoDB Time to Live

它允许您为每个表指定一个属性,作为每个项目的生存时间值。 然后,您可以使用 Unix 时间戳设置每个项目的属性,该时间戳指定应删除项目的时间。

在该时间戳的大约 24 小时内,该项目将被删除,不收取额外费用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM