Amazon dynamodb DynamoDB体系结构-具有复杂结构的较小数据集,或更大更简单的数据集

Amazon dynamodb DynamoDB体系结构-具有复杂结构的较小数据集,或更大更简单的数据集,amazon-dynamodb,Amazon Dynamodb,我们正在使用DynamoDB构建一个游戏。我们有一份大约50000件物品的清单。这些可以作为游戏的一部分分配给小组。大约有30个小组。我们需要按组和项目跟踪组数 我已经建立了一个结构,其中每个项目都有一个结构,该结构可能包含每个组,其中包含一个可以递增的数字,因此它看起来像这样: {ItemId: XYXYSY, Groups:{X:5,Y:10} } 这很好用。当然,另一种方法是将分组写入一个单独的表中: {ItemID: XYSYSY, Timestamp: 12334567, Gr

我们正在使用DynamoDB构建一个游戏。我们有一份大约50000件物品的清单。这些可以作为游戏的一部分分配给小组。大约有30个小组。我们需要按组和项目跟踪组数

我已经建立了一个结构,其中每个项目都有一个结构,该结构可能包含每个组,其中包含一个可以递增的数字,因此它看起来像这样:

{ItemId: XYXYSY,
   Groups:{X:5,Y:10}
}
这很好用。当然,另一种方法是将分组写入一个单独的表中:

{ItemID: XYSYSY, Timestamp: 12334567, Group: X}
因此,我需要在第一种模式下增加计数器,或者在第二种模式下每次写入一条新记录

第一种方法意味着更少的数据,以及一个很好的包,用于以后按项检索信息。第二个可以无限增长,而且更简单

在某个时刻,我必须检索整个内容并导出它,或者以增量方式进行

我一直在研究迪纳摩的性能模型,我试图弄清楚第一个模型是否会给我自己带来麻烦。50000个键,每个记录有少量数据,不会分布在很多分区上。同时,因为它是一个相对较小的数据集,仅通过项id检索,并通过项id更新,所以它应该相当快。对于第二个模型,如果游戏变得非常流行,那么这个表将会疯狂地增长,而且它仍然只基于相同的50000个键。我可能会将时间戳添加为范围键


任何关于什么会随着时间和负载的推移而变得更高性能的想法都将受到赞赏,甚至是一种完全不同的方法。

数据大小不是决定分区数量的唯一因素。如果分区数量很大,吞吐量分配也会影响分区数量。这两种数据模型都是如此。例如,如果在一个新表上提供3000个RPC和3000个wps,那么在创建它时,它将正好有4个分区,每个分区分配750个wps和750个rps

假设您使用第一个模型,此配置将允许您以每秒750个事务的速度更新单个ItemIds,并在所有ItemIds中每秒总共更新3000个事务


从这一点开始,您似乎需要找出您的负载模式,以进一步确定上述第一个数据模型和配置是否合适。诸如日间计划、持续负载与突发负载、一次写入多次读取和多次写入多次读取等模式都可能会影响您对数据模型的选择

表和每个项目需要多少写和读吞吐量?每项400KB的50000项仅为20GB,即只有2个分区。问题是,这是一个游戏。所以,我们可以让10人,或者1000万人玩。在低水平上,两者都可以很好地发挥作用。但我在想如果1000万人捡起它会发生什么。