AWS DynamoDB 与 AWS DocumentDB(新推出的服务)之间的区别?

Difference between AWS DynamoDB vs. AWS DocumentDB(Newly launched service)?

AWS 最近推出了类似于 MongoDB 接口的新服务 DocumentDB。
AWS DynamoDB 与 DocumentDB 服务之间有什么区别?

主要区别在于 DocumentDB 是 MongoDB 和 DynamoDB 之间的中间步骤。

DynamoDB 是一种完全托管的可扩展服务,您可以在其中设置其潜力的上限。

DocumentDB 需要更多动手操作,您必须 select 集群的实例数和实例大小。这意味着您需要关注它们的使用情况/性能,但不要关注 MongoDB.

Mongo数据库是最灵活的,但也需要最多的维护。

根据应用程序的不同,所有这些都对性能有好处,但这取决于您需要多高的灵活性以及更多的维护成本。

另一个因素是定价模型。 MongoDB (Atlas) 和按小时付费的 DocumentDB(加上 DocumentDB 的使用量)。 DynamoDB,您可以根据预置资源或按需付费(按使用量付费)。

编辑:我根据我对这三个方面的经验写了一篇更广泛的文章:https://medium.com/@caseygibson_42696/difference-between-aws-dynamodb-vs-aws-documentdb-vs-mongodb-9cb026a94767

一些主要区别

  1. Amazon DynamoDB 是一种完全托管的 NoSQL 数据库服务。它提供具有可扩展性的快速和 predictable 性能。您可以使用 Amazon DynamoDB 创建一个数据库 table,它可以存储和检索任意数量的数据,并为任意级别的请求流量提供服务。 Document DB 基于开源文档数据库 Mongo DB 和领先的 NoSQL 数据库。Document DB 基于开源 Mongo DB,是一种旨在减少开发和扩展的文档数据库。

  2. DynamoDB 使用 tables、项和属性作为您使用的核心组件。一个table是一个item的集合,每一个item都是一个属性的集合。 DynamoDB 使用主键来唯一标识 table 中的每个项目,并使用辅助索引来提供更大的查询灵活性。

MongoDB / 文档 DB 使用类似于 JSON 的文档来存储无模式数据。在 Document DB 中,文档集合不需要预定义的结构,并且列可以因不同文档而异。 Document DB 具有关系数据库的许多特性,包括表达查询语言和强一致性。由于它是无模式的,MongoDB/Document DB 允许您创建文档而无需先为文档创建结构。

  1. 在 DynamoDB 中,您可以创建和使用所谓的二级索引,目的与在 RDBMS 中类似。创建二级索引时,必须指定其关键属性,创建后可以像table一样查询或扫描它。 DynamoDB 没有查询优化器,所以二级索引只在查询或扫描时使用。

在 MongoDB/Document 数据库中首选索引。如果缺少索引,则必须搜索集合中的每个文档以 select 查询请求的文档。这会减慢读取时间。

  1. DynamoDB 在游戏行业和物联网 (IoT) 行业都很流行。

总而言之,如果您需要可伸缩性和缓存来进行实时分析,Document DB 是一个不错的选择;但是,它不是为交易数据(会计系统等)构建的。文档数据库可用于移动应用程序、内容管理、实时分析和物联网应用程序。如果您的情况没有明确的模式定义,DocumentDB 可能是一个不错的选择。