如何解决DynamoDB获取时间表中的更新行
上下文:
我们对DynamoTable的需求很高,它负责了解经常更新并实时需要的用户属性
我们还需要每天为每个用户拍摄此属性的快照。
问题解决方案:
为解决此问题,我们决定为dynamo引入一些额外的属性(更新时间),并设置一个GSI,其中每隔x小时我们就会查询最近更新的行并将信息复制到SQL Server。
然后,当我们开始接收到全部负载并且GSI索引无法处理时,就会出现问题,因为我们开始有一个“热分区” ,如果没有完全失去了拥有GSI的含义。 我们做错了什么吗?还是表明这对于高需求表来说只是一个不好的解决方案?
头脑风暴:
尽管我们打算将动态转移到预配置的吞吐量,但是随后我们发现,此GSI的成本比表本身要贵得多,因此值得商。
然后我们有2个想法,我正在寻找见解的一个是:
将DynamoDb流与KEYS_only属性一起使用,但是当我阅读文档时,对我来说这部分听起来并不清晰:
DynamoDB流有助于确保以下内容:
每个流记录在流中仅显示一次。
这是否意味着记录内容本身仅出现一次? 假设我在早上7点更新一条记录(在流中添加了 hashKey [999] ),然后我在7:30 AM和9 AM再次更新了
当我查询流时,我将得到999次三次还是只有第一个,因为内容将是相同的(我想)?
有人使用dynamoDB Stream来解决这样的问题吗?您能否提供有关成本的个人经验(有什么意外吗?),如何轻松查询流,意外问题或其他?
此外,我希望能获得有关如何解决此问题的指导。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。