首页 > 解决方案 > AWS DynamoDB 与 AWS DocumentDB(新推出的服务)之间的区别?

问题描述

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

标签: amazon-web-servicesamazon-dynamodbaws-documentdb-mongoapi

解决方案


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

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

DocumentDB 需要更多动手操作,您必须选择集群的实例数量和实例大小。这意味着您需要关注它们的使用/性能,而不是关注 MongoDB 的范围。

MongoDB 将是最灵活的,但也需要最多的维护。

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

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

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

一些关键差异

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

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

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

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

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

  1. DynamoDB 在游戏行业以及物联网 (IoT) 行业都很受欢迎。

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


推荐阅读