公告推出 MongoDB 8.0,史上最快的 MongoDB! 了解更多 >>推出 MongoDB 8.0,史上最快的 MongoDB! >>

比较Amazon DocumentDB和MongoDB

在云中部署MongoDB似乎有多种选择。例如,Amazon DocumentDB声称是一个完全支持MongoDB API的AWS原生数据库。虽然它们支持一些MongoDB功能,但重要的是要注意DocumentDB并不完全兼容。在AWS上访问功能齐全的MongoDB作为服务的唯一地方是通过MongoDB Atlas。

在本比较中,我们旨在解释Amazon DocumentDB和MongoDB Atlas之间的差异,重点关注以下关键领域

  • 兼容性:Amazon声称将应用程序从MongoDB迁移到DocumentDB“就像更改数据库端点到新的Amazon DocumentDB集群一样简单”。我们已经通过运行一系列兼容性测试来辟谣这一点,这些测试表明DocumentDB与MongoDB Atlas中可用的功能和功能只有大约34%的兼容性。
  • 架构:Amazon DocumentDB建立在AWS的Aurora平台之上,该平台历史上一直用于托管关系数据库。这对可扩展性和未来添加更多原生MongoDB功能具有影响。DocumentDB可以使用弹性集群进行部署,这会带来额外的操作约束。
  • 部署:Amazon的DocumentDB依赖于AWS的专有技术,无法在AWS之外运行该数据库。
  • 开发者生产力:DocumentDB缺乏与支持移动、时间序列、搜索和数据分析用例的特性和工具的原生集成。用户必须承担将数据从DocumentDB移动到其他服务以访问支持这些工作负载的特性的操作负担。
  • 操作成熟度:DocumentDB中的数据库管理和维护受限于工具有限、复杂的升级过程、备份选项很少和安全功能缺失。

什么是DocumentDB?

Amazon DocumentDB是一个与MongoDB具有一定程度兼容性的NoSQL JSON文档数据库服务。

DocumentDB不是基于MongoDB服务器构建的。相反,它模拟MongoDB API,并运行在Amazon的Aurora后端平台之上。这产生了重大的架构限制、功能限制和兼容性损坏。

DocumentDB声称支持MongoDB 4.0 API,这意味着它与2018年6月发布的MongoDB v4.0版本处于同等水平。然而,这仅部分正确,因为MongoDB 4.0的大部分差异化功能都不被DocumentDB支持。此外,兼容性测试显示它有超过66%的MongoDB API正确性测试失败。为MongoDB编写的应用程序需要重新编写以与Amazon DocumentDB兼容。

想了解DocumentDB与MongoDB API兼容性的最新结果?请访问Is DocumentDB Really MongoDB?

以下是DocumentDB与MongoDB的按需、弹性、完全托管Atlas服务之间的关键差异总结。

Amazon DocumentDBMongoDB Atlas
完全兼容MongoDB

不,不完整
模仿API有66%的正确性测试失败

支持最新版本的MongoDB


功能集类似于2015年发布的MongoDB 3.0/3.2。

扩展写入和分区数据,支持分片

有限
在弹性集群部署中提供分片。

只有哈希分片。易形成热点分区。弹性集群施加额外的功能限制。

跨多个区域复制和扩展/遵守数据本地性法规并应对区域故障


每个区域限制为20个集群,每个集群有32个分片和每个分片有2个实例。所有都限制在单个区域。

高度容错,快速故障恢复,快速故障切换,可重试写入,多区域


约120秒的故障切换,没有可重试写入,没有单一或弹性集群内的多区域

多语句分布式ACID事务

有限
提交不明确,错误处理不佳,数据大小小。弹性集群中的事务不支持跨分片。

集成文本搜索,地理空间处理,图遍历

有限
将数据复制到多个AWS附加服务以进行文本搜索,仅提供基本地理空间运算符,增加了成本和复杂性

原生支持时序数据

边读

将查询提交给多个副本以实现一致的低延迟

在线存档

自动将数据从数据库 tier 到云对象存储(Amazon S3)

集成查询Amazon S3中的数据


数据必须复制到多个相邻AWS服务,增加了成本和复杂性

按需物化视图
架构治理


必须在应用程序中强制执行架构控制

丰富的数据类型

有限
DocumentDB支持存储decimal128值,但没有与之相关的强大聚合功能。

响应式、事件驱动的数据处理管道

有限
仅对主副本运行更改流,并产生额外的成本。

支持基于角色的访问控制和身份验证限制

有限
仅粗粒度角色

细粒度监控遥测和性能建议


<50个指标

客户端字段级加密,以在云中实现细粒度职责分离
可查询加密
提供高级开发人员和分析工具有限
摆脱供应商锁定


仅限AWS

随时随地开发与运行
在您的移动设备上、笔记本电脑上、您的数据中心内以及混合配置中


仅限AWS

移动与边缘同步

数据必须复制到多个相邻AWS服务,增加了成本和复杂性

访问MongoDB专业知识
Amazon DocumentDB
完全兼容MongoDB

不,不完整
模仿API有66%的正确性测试失败

支持最新版本的MongoDB


功能集类似于2015年发布的MongoDB 3.0/3.2。

扩展写入和分区数据,支持分片

有限
在弹性集群部署中提供分片。

只有哈希分片。易形成热点分区。弹性集群施加额外的功能限制。

跨多个区域复制和扩展/遵守数据本地性法规并应对区域故障


每个区域限制为20个集群,每个集群有32个分片和每个分片有2个实例。所有都限制在单个区域。

高度容错,快速故障恢复,快速故障切换,可重试写入,多区域


约120秒的故障切换,没有可重试写入,没有单一或弹性集群内的多区域

多语句分布式ACID事务

有限
提交不明确,错误处理不佳,数据大小小。弹性集群中的事务不支持跨分片。

集成文本搜索,地理空间处理,图遍历

有限
将数据复制到多个AWS附加服务以进行文本搜索,仅提供基本地理空间运算符,增加了成本和复杂性

原生支持时序数据

边读

将查询提交给多个副本以实现一致的低延迟

在线存档

自动将数据从数据库 tier 到云对象存储(Amazon S3)

集成查询Amazon S3中的数据


数据必须复制到多个相邻AWS服务,增加了成本和复杂性

按需物化视图
架构治理


必须在应用程序中强制执行架构控制

丰富的数据类型

有限
DocumentDB支持存储decimal128值,但没有与之相关的强大聚合功能。

响应式、事件驱动的数据处理管道

有限
仅对主副本运行更改流,并产生额外的成本。

支持基于角色的访问控制和身份验证限制

有限
仅粗粒度角色

细粒度监控遥测和性能建议


<50个指标

客户端字段级加密,以在云中实现细粒度职责分离
可查询加密
提供高级开发人员和分析工具有限
摆脱供应商锁定


仅限AWS

随时随地开发与运行
在您的移动设备上、笔记本电脑上、您的数据中心内以及混合配置中


仅限AWS

移动与边缘同步

数据必须复制到多个相邻AWS服务,增加了成本和复杂性

访问MongoDB专业知识
MongoDB Atlas
完全兼容MongoDB
支持最新版本的MongoDB


MongoDB 7.0

扩展写入和分区数据,支持分片


全面支持多种分片方法,包括哈希、范围和地理区域。

跨多个区域复制和扩展/遵守数据本地性法规并应对区域故障


全局集群,每个分片跨多个区域最多有50个副本

高度容错,快速故障恢复,快速故障切换,可重试写入,多区域


典型的故障切换时间小于5秒,可重试读取和写入,多区域和多云集群

多语句分布式ACID事务
集成文本搜索,地理空间处理,图遍历


所有这些都可通过单一API和平台访问

原生支持时序数据

边读

将查询提交给多个副本以实现一致的低延迟

在线存档

自动将数据从数据库 tier 到云对象存储(Amazon S3)


在线存档

集成查询Amazon S3中的数据


Atlas数据联邦

按需物化视图


$merge聚合阶段

架构治理


JSON架构

丰富的数据类型
响应式、事件驱动的数据处理管道


MongoDB更改流和Atlas触发器

支持基于角色的访问控制和身份验证限制
细粒度监控遥测和性能建议


100+指标。性能顾问提供索引和架构建议

客户端字段级加密,以在云中实现细粒度职责分离
可查询加密


在MongoDB 7.0中可用

提供高级开发人员和分析工具


MongoDB Compass、Charts、SQL连接器、Tableau连接器、Power BI连接器、Spark连接器

摆脱供应商锁定


AWS、Azure和Google Cloud。在115多个地区可用

随时随地开发与运行
在您的移动设备上、笔记本电脑上、您的数据中心内以及混合配置中


Atlas App Services / MongoDB服务器 / Atlas中的多云集群

移动与边缘同步
访问MongoDB专业知识


数百名拥有多年MongoDB开发、支持和咨询经验的工程师。

什么是MongoDB Atlas?

MongoDB提供完全托管、按需和全球性的MongoDB Atlas服务,在公共云中。Atlas使客户能够在AWS、Azure或Google Cloud上部署、运行和扩展MongoDB数据库。MongoDB Atlas通过按使用付费模式提供,并按小时计费。易于开始 – 使用简单的GUI或程序性API调用选择所需的公共云提供商、区域、实例大小和功能。MongoDB Atlas提供

  • 自动数据库和基础设施配置以及自动扩展,以便团队能够在需要时获取所需的数据库资源,并能够根据应用程序需求弹性扩展。

  • 安全功能以保护您的数据,包括网络隔离、细粒度访问控制、审计和端到端加密到单个字段级别,使您能够遵守ISO、HIPAA和GDPR等法规。内置跨区域内的复制,确保始终在线可用。

  • 全球集群,提供全面托管的、全球分布式的数据库,为世界各地的用户提供低延迟、响应式的读写操作,同时提供强大的数据放置控制,以符合法规要求。

  • 结合事务性和分析功能,使用Atlas分析节点将分析查询与操作工作负载隔离开来,同时提供实时洞察。默认情况下配置了原生的MongoDB分析工具,如MongoDB图表和MongoDB连接器(用于SQL、Tableau、Power BI和Spark),允许用户针对其数据运行表达式的查询。

  • 完全集成的原生MongoDB数据可视化工具 – MongoDB图表,支持包括嵌套、层次和地理空间数据在内的完整文档模型,并提供嵌入和共享功能。快速构建数据可视化,无需部署或管理任何软件或基础设施。

  • 完全集成的MongoDB Atlas数据联邦,允许用户快速在Atlas集群和存储在Amazon S3上的多种格式的数据上运行联邦查询。MongoDB查询语言(MQL)和工具允许用户更快地从数据中获取价值。

  • 完全托管的后备,提供点时间恢复功能,以防止数据损坏,并允许在不完全恢复的情况下查询备份数据。

  • 自动数据分层,通过将数据移动到成本更低的存储(如Amazon S3)来降低成本。

  • 细粒度监控和可自定义警报,以实现全面性能可见性。自动打补丁和一键升级数据库的新主要版本,让您能够利用最新的MongoDB功能。

  • 访问Atlas App Services,以完全无服务器的模型提供数据访问控制、函数和触发器。

  • 原生时间序列支持,优化了高性能数据摄取和查询,同时降低了I/O和存储开销。

  • 完整的全文Atlas Search服务,提供针对您完全托管的数据库的丰富搜索功能,无需额外配置、管理和扩展基础设施或系统。

  • 将自托管MongoDB集群迁移到Atlas服务,或将Atlas集群在云服务提供商之间迁移的实时迁移。

  • 稳定的API,使升级无风险,为您的开发提供未来保障。

  • 在主要云平台上广泛覆盖,在Amazon Web Services、Microsoft Azure和Google Cloud的115多个云区域提供可用性。MongoDB Atlas确保在每个云平台上提供一致的使用体验,确保开发者可以在任何需要的地方部署,而不会牺牲关键功能或承担锁定风险。

MongoDB Atlas为初创公司、财富500强公司和政府机构提供广泛的业务负载,包括处理敏感数据的任务关键型应用程序。MongoDB Atlas和自托管MongoDB之间的开发者体验保持一致,确保您可以轻松地从本地迁移到公共云,并在需求变化时在提供商之间迁移。

除了数据库之外,MongoDB Atlas数据联邦允许您同时使用MongoDB查询语言(MQL)查询Amazon S3和Atlas集群中的任何格式数据。使用Atlas数据联邦,您可以更快地实现S3数据湖的价值:您不必移动数据,可以立即以原始形式处理复杂数据,并且其全托管、无服务器架构可以帮助您控制成本并减轻运营负担。DocumentDB没有提供这种等效功能,因此用户必须启动一个完全不同的服务,并使用不同的查询语言来访问S3数据。

由开发数据平台同一团队构建和运行,MongoDB Atlas是运行MongoDB应用程序的最佳方式。

DocumentDB与MongoDB兼容吗?

Amazon DocumentDB声称支持MongoDB 4.0 API,这意味着它与2018年6月发布的MongoDB v4.0相当。实际上,DocumentDB 4.0的功能集仍然非常类似于2015年发布的早期MongoDB 3.0和3.2,兼容性测试显示它失败了66%的MongoDB API正确性测试。为MongoDB编写的应用程序需要重写才能与Amazon DocumentDB一起使用。然而,由于DocumentDB模拟MongoDB API,为DocumentDB编写的应用程序可以轻松迁移到MongoDB Atlas。

想了解更多吗?

有兴趣从DocumentDB迁移到MongoDB Atlas吗?请参阅我们的迁移指南。

想了解DocumentDB与MongoDB API兼容性的最新结果?请访问Is DocumentDB Really MongoDB?获取最新结果。

免费试用MongoDB Atlas,体验真实的MongoDB。

常见问题解答

我应该何时使用文档数据库?

文档数据库以JSON类似文档的形式存储数据,这使得它们对于开发者来说天生易于使用。MongoDB是一个现代文档数据库,它包含了许多在流行关系型数据库中找到的强大功能。这包括符合ACID标准的事务、架构治理、企业级安全等功能。

MongoDB可以从Amazon S3读取数据吗?

MongoDB提供Atlas数据联邦引擎,允许用户使用MongoDB查询API快速轻松地查询Amazon S3上的任何格式数据。

MongoDB与DocumentDB之间的主要区别是什么?

DocumentDB不包含任何MongoDB代码,仅支持MongoDB功能的一个有限子集,并且成本更高,管理更困难。

MongoDB适合移动和边缘用例吗?

MongoDB 提供了 Atlas for the Edge,这是一种以离线优先的方法简化移动和边缘设备之间数据管理的解决方案。这意味着在任何情况下,包括网络连接的情况下,都会自动处理同步和冲突解决。Atlas for the Edge 还允许用户在边缘服务器上本地处理数据,从而缩短边缘设备和计算之间的距离,因此降低延迟。

MongoDB 是否适合 Web 应用程序?

作为其开发者数据平台的一部分,MongoDB Atlas 应用服务提供了一套用于构建 Web 应用程序的工具。