Aurora vs Redshift vs DynamoDB for Indie Game Backend?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Aurora vs Redshift vs DynamoDB for Indie Game Backend?相关的知识,希望对你有一定的参考价值。

我一直在阅读这些数据库上的一大堆,但仍然不确定要使用什么。

对于我正在开发的游戏,我需要一个后端。此后端需要存储用户帐户,用户拥有的项目和用户的分数。

在游戏开始时,用户将在数据库中查询他们的项目。当他们获得一个新项目时,它会将其添加到他们在数据库上的帐户。项目将存储为大型JSON blob。

因此,不会频繁访问此数据库。它不需要存储大量数据,因为它实际上每个用户只需要输入1个。但它应该能够扩展到数百万。

我将需要查询数据库以确定哪些用户属于哪些特定类别或团队。

尽可能便宜,以可靠和足够快的方式存储这些数据是理想的。

这个的最佳选择是什么?

答案

Redshift是一个数据仓库,通常用于OLAP(分析)过程。分析DB对于事务处理来说太慢,并且通常不遵守主键外键约束。而Aurora和DynamoDB是OLTP(事务性)数据库。在您的情况下,如果您要将所有数据保存在单个JSON条目中,最好使用DynamoDB,但我建议使用Aurora,因为它是具有修复架构的RDBMS,但您必须为每个用户保留多个条目另一个表虽然检索它们只是一个连接查询。

另一答案

Redshift无法满​​足您的需求。它是一个OLAP数据库,旨在并行扫描大量数据。作为一个非常基本的示例,您可以将您的实时数据库导出到Redshift并查询它以查看是否有任何玩家有大量金钱或大量重复项目,并以这种方式寻找骗子。查询和更新单个记录非常糟糕。

Aurora和DynamoDB都是OLTP数据库,旨在处理任务,就像您想到的那样。根据个人经验,我可以说Aurora可以轻松扩展:我使用的是一个中档Aurora实例,它可以在数十亿个记录表中提供~2500 QPS。如果有的话,DynamoDB在类似的价位上比Aurora更具可扩展性,所以我不担心缩放。 :)

对于您描述的简单模式,选择Aurora或DynamoDB之一并不是一个非常有说服力的理由。 AWS在预览中有serverless Aurora,如果它现在可用,它将是最低成本的灯光使用选择。也许现在使用带有Aurora的t2.small并在可以的时候迁移到无服务器?不过,DynamoDB在低端也相当便宜。

以上是关于Aurora vs Redshift vs DynamoDB for Indie Game Backend?的主要内容,如果未能解决你的问题,请参考以下文章

将 Aurora 数据迁移到 Redshift DWH 的好方法是啥?

用于独立游戏后端的 Aurora、Redshift 和 DynamoDB?

如何将 Aurora Mysql ddl 翻译成 Redshift ddl

Java世界中的类vs包vs模块vs组件vs容器vs服务vs平台[关闭]

VS2005和VS2008做的项目有啥区别

性能测试 - 响应 vs 延迟 vs 吞吐量 vs 负载 vs 扩展性 vs 压力 vs 健壮性