如何在DynamoDB中访问关系数据(键与查询)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在DynamoDB中访问关系数据(键与查询)相关的知识,希望对你有一定的参考价值。
在DynamoDB中访问关系数据的最佳方法是什么?最好是冗余存储信息并根据需要进行更新,还是在每次需要访问关系数据时进行查询?
例如,假设我有一个Team表,该表具有一个Members字段,该字段存储成员ID的数组,其中还包括成员的姓名。
团队
Members: [
member1: "John",
member2: "Sam",
member3: "Pam"
]
[只要我的应用程序需要访问团队成员,我所要做的就是在“团队成员”字段中调用get
。然后,如果我需要其他团队成员数据,我可以进一步致电获取整个成员记录。
我对此方法的关注点之一是,每当一个人更新名称时,都必须更新member数组中的名称。更不用说用户名的其他所有地方,也可以存储。
然后我的主要问题是,是否应该每次都查询这些记录,而不是将这些数据存储在团队记录中。
例如,我应该改为query all members who have team 123
?
连续执行查询会更昂贵,还是必须更新所有这些相关数据会更昂贵?
我知道查询路由要尝试防止数据异常才是一件容易的事,但是查询可能还需要多次调用才能获取相同的数据。
dynamodb写操作比读操作更昂贵,并且在向表(或分区)中添加一些二级索引时,它会变得更多。
此外,如果必须在事务中完成同步操作以确保原子性,则同步不同项目中的值可能会收取额外费用。>
这取决于您的应用程序需求和预算,即确定一个用例(例如:月)在每个用例中大约会有多少个请求,然后尝试优化可产生最多流量的用例的成本,无论类型(读或写)。
对于某些读取的用例,您可能会接受读取模型的最终一致性并使用缓存(例如S3文件),但仍然可以选择...
以上是关于如何在DynamoDB中访问关系数据(键与查询)的主要内容,如果未能解决你的问题,请参考以下文章