在我的用例中,我有一个用户上传了具有60k行的csv文件,每行最好是DynamoDb中的一个条目。
用户可以随时上传文件。当他上载新文件时,必须删除并替换旧数据。在SQL数据库中,您将:
我存储的数据确实适合对象存储,没有任何关系。加上成本效益,DynamoDb带来了Aurora。
由于DynamoDb的批处理操作每个请求只能处理25个对象,因此如果由于某种原因无法完全处理新文件,则保留旧数据很重要。
是否有使用DynamoDb实现此目的的干净方法?
答案 0 :(得分:0)
好像您应该看看DDB中的版本控制。
Using Sort Keys for Version Control
对于每个新项目,创建该项目的两个副本:一个副本的开头应具有版本号前缀零(例如v0_)
的排序键,并且版本号前缀应为一个
(例如v001 _)。每次更新项目时,请在更新版本的排序键中使用下一个更高版本的前缀,然后复制更新后的 内容放入版本前缀为零的项目中。这意味着 使用零可以轻松找到任何项目的最新版本 前缀
编辑
在这种情况下,您实际上不会删除行...
但是,是的,在更新的中间,用户可以同时获取旧数据和新数据。那就是最终一致的想法。
如果您不能忍受,为什么还要使用DDB?
似乎最好将文档存储在S3中并使用Athena对其进行查询。