全面对比Amazon DocumentDB 与 MongoDB

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云原生内存数据库 Tair,内存型 2GB
简介: MongoDB系列技术文章精选

在云中部署 MongoDB 似乎有多种选择。例如,Amazon DocumentDB自称是完全支持 MongoDB API 的 AWS 原生数据库。虽然它支持一些 MongoDB 功能,但需要注意的是 DocumentDB 并不完全兼容 MongoDB。要在 AWS 上访问功能齐全的“MongoDB 即服务”,唯一入口是 MongoDB Atlas。

在本次对比中,我们将围绕以下关键领域说明 Amazon DocumentDB和MongoDB Atlas 之间的差异:

兼容性
Amazon 声称将应用程序从 MongoDB 迁移到 DocumentDB“非常简单,只需要将数据库端点切换为新的 Amazon DocumentDB 集群”——我们通过运行一组兼容性测试揭穿了真相:测试表明 DocumentDB 仅可兼容约 35% 的 MongoDB Atlas 特性和功能。

架构
Amazon DocumentDB 构建在 AWS 的 Aurora 平台之上,该平台一直都用于托管关系数据库。这会影响可扩展性以及未来添加更多原生 MongoDB 功能的潜力。DocumentDB 可以使用弹性集群进行部署,这会进一步限制操作。

部署
Amazon 的 DocumentDB 依赖于 AWS 专有技术,无法在 AWS 之外运行。

开发人员生产力
DocumentDB 没有原生集成相关功能和工具,无法支持移动、时间序列、搜索和分析用例。要使用支持这些工作负载的功能,用户必须承担将数据从 DocumentDB 移至其他服务的操作负担。

操作成熟度
DocumentDB 中的数据库管理和维护会受到一些因素的限制,包括工具有限、升级过程复杂、备份选项少以及安全功能缺陷。

DocumentDB是什么?

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

DocumentDB 不基于 MongoDB 服务器。它效仿的是 MongoDB API,并在 Amazon 的 Aurora 后端平台上运行。这造成了严重的架构和功能限制,并极大地破坏了兼容性。

DocumentDB 声称支持 MongoDB 4.0 API,这意味其功能与 2018 年 6 月发布的 MongoDB v4.0 相当。实际上,DocumentDB 4.0 功能集更接近于 2015 年发布的 MongoDB 3.0 和 3.2。

此外,兼容性测试表明,DocumentDB 未能通过 64% 以上的 MongoDB API 正确性测试。针对 MongoDB 开发的应用程序需要重新编写才能与 Amazon DocumentDB 配合使用。
image.png

DocumentDB 与 MongoDB 完全托管的按需、弹性 Atlas 服务之间的主要区别总结如下:
image.png

MongoDB Atlas是什么?

MongoDB 在公有云中提供完全托管、按需和全局 MongoDB Atlas 服务。Atlas 让客户能够在 AWS、Azure 或 Google Cloud 上部署、操作和扩展 MongoDB 数据库。MongoDB Atlas 通过即买即用模式按小时计费。入门非常简单:只需利用一个简单的图形用户界面 (GUI) 或编程 API 调用即可选择公有云提供商、区域、实例大小和所需的功能。

MongoDB Atlas 提供:

自动化的数据库和基础设施预配以及自动伸缩功能,让团队能够在需要时获得所需的数据库资源,并能够根据应用程序需求进行弹性扩展。

通过网络隔离、细粒度访问控制、审计和细化到字段级的端到端加密保护数据的安全功能,让您能够符合 HIPAA 等行业法规。区域内和区域间的内置复制可提供始终在线的可用性。

您可以通过全局集群部署一个完全托管、全局分布的数据库,为任何地方的用户提供低延迟、高响应度的读写操作,其强大的数据放置控制功能,可实现合规性。

将事务和分析功能与 Atlas Analytics Nodes 相结合,在实现分析查询与操作工作负载隔离的同时,提供实时数据洞察。本地 MongoDB 分析工具,如MongoDB Charts 和MongoDB Connectors(用于 SQL、Tableau 和 Spark)默认配置为使用 Analytics Nodes。MongoDB 丰富的聚合管道引擎允许用户对其数据运行富有表现力的查询。

完全集成的原生 MongoDB 数据可视化工具 MongoDB Charts,支持丰富的文档模型,包括嵌套式、分层和地理空间数据,并提供嵌入和分片功能。快速构建数据可视化,无需部署或管理任何软件或基础设施。

完全集成的 MongoDB Atlas Data Lake,让用户使用 MongoDB 查询语言 (MQL) 和工具在 Amazon S3 上快速、轻松地查询任何格式的数据,并更快地挖掘数据的价值。

具有时间点恢复功能的完全托管备份可防止数据损坏,能够在不执行全面恢复的情况下就地查询备份数据。

自动数据分层通过将数据移动到成本较低的存储(例如 Amazon S3)来帮助降低成本。

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

通过访问 Atlas 应用程序服务,可以在完全无服务器的模型中提供数据访问控制、函数和触发器。

原生时间序列支持针对高性能数据摄入和查询进行了优化,同时减少了 I/O 和存储开销。

全文 Atlas Search 服务,针对完全托管的数据库提供丰富的搜索功能,无需预配、管理或扩展其他基础设施或系统。

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

稳定的 API 消除了升级风险,让您的开发可以满足未来需求。

广泛覆盖主要云平台,可用于 Amazon Web Services、Microsoft Azure 和 Google Cloud 上的约 100 个云区域。MongoDB Atlas 在每个云平台上都提供一致的体验,确保开发人员可以在任何需要的地方进行部署,而不会影响关键功能或带来云供应商锁定风险。

MongoDB Atlas 为初创企业、财富500强企业和政府机构提供广泛的工作负载,包括帮助受监管行业处理高度敏感数据的任务关键型应用程序。

MongoDB Atlas 和自我托管的 MongoDB 开发人员体验是一致的,确保您可以根据需要轻松地从本地移动到公有云,以及在提供商之间移动。

除了数据库,MongoDB Atlas Data Lake 还允许您使用 MongoDB 查询语言和工具在 Amazon S3 上快速、轻松地查询任何格式的数据。您可以通过统一用户界面,在 Atlas OLTP 集群旁边启动数据湖。借助 Atlas Data Lake,您可以更快地实现数据湖的价值,例如无需将数据移动到任何地方,可以直接以原生形式处理复杂数据,以及使用其完全托管的无服务器架构来控制成本并消除操作负担。而DocumentDB并不提供同等功能,因此用户必须使用其他查询语言启动完全独立的服务来访问 S3 数据。

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

DocumentDB与MongoDB兼容吗?

Amazon DocumentDB 声称支持 MongoDB 4.0 API,这意味其功能与 2018 年 6 月发布的 MongoDB v4.0 相当。实际上,DocumentDB 4.0 功能集仍然与 2015 年发布的 MongoDB 3.0 和 3.2 早期版本高度相似,兼容性测试表明 DocumentDB 未能通过 64% 的 MongoDB API 正确性测试。

image.png

Image截至2023-11-02的兼容性测试结果

针对 MongoDB 开发的应用程序需要重新编写才能与 Amazon DocumentDB配合使用。但由于 DocumentDB 效仿了 MongoDB API,因此针对 DocumentDB 编写的应用程序可以轻松迁移到 MongoDB Atlas。

想要了解详情?

想要从 DocumentDB 迁移到 MongoDB Atlas?请参阅我们的迁移指南。

想知道 DocumentDB 与 MongoDB API 的最新兼容情况?请查阅“DocumentDB 真的与 MongoDB 高度兼容吗?”

欢迎访问MongoDB官网免费试用 MongoDB Atlas,享受真正的 MongoDB 体验。
image.png

常见问题解答

何时使用文档数据库?
文档数据库将数据存储在类似 JSON 的文档中,拥有与生俱来的易用性,非常便于开发人员使用。MongoDB 是一种现代文档数据库,可提供热门关系数据库中的许多强大功能,包括兼容 ACID 事务、模式管理、企业级安全性等等。

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

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

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

DocumentDB 不包含任何 MongoDB 代码,支持的 MongoDB 功能子集数量有限,而且成本更高,管理起来也比较困难。

MongoDB 适合移动和 Web 应用程序吗?

作为开发人员数据平台的一部分,MongoDB Atlas 应用程序服务提供了一套用于构建移动和 Web 应用程序的工具,包括 Realm 数据库。

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
11天前
|
NoSQL 大数据 MongoDB
云中对决:Amazon DocumentDB 与 MongoDB的终极较量,谁将主宰云端数据库的未来?
【8月更文挑战第8天】在云计算与大数据时代,文档数据库因灵活高效备受开发者青睐。本文作为指南,全面对比Amazon DocumentDB与MongoDB。DocumentDB兼容MongoDB,便于迁移;在AWS环境下,它提供卓越的性能与自动伸缩能力。MongoDB则侧重于自定义部署与成本控制。DocumentDB作为托管服务简化管理但成本较高,而MongoDB需自行处理安全性与备份。根据需求与预算,开发者可作出最佳选择。
28 3
|
3月前
|
人工智能 NoSQL atlas
MongoDB Atlas Vector Search与Amazon Bedrock集成已全面可用
MongoDB Atlas Vector Search知识库与Amazon Bedrock的最新集成,将极大加速生成式AI应用的开发
2613 1
|
存储 NoSQL Oracle
「数据库选型」卫报从MongoDB迁移到Amazon RDS上的PostgreSQL
「数据库选型」卫报从MongoDB迁移到Amazon RDS上的PostgreSQL
|
存储 新零售 弹性计算
心动《另一个伊甸》从Amazon DynamoDB迁移MongoDB
阿里云MongoDB提供了很好的保障和性能,使我们的业务成本有了明显的下降
心动《另一个伊甸》从Amazon DynamoDB迁移MongoDB
|
5天前
|
JSON NoSQL Ubuntu
在Ubuntu 14.04上如何备份、恢复和迁移MongoDB数据库
在Ubuntu 14.04上如何备份、恢复和迁移MongoDB数据库
14 1
|
13天前
|
存储 NoSQL 物联网
MongoDB:改变游戏规则的数据库,看它如何统治数据世界的每一个角落
【8月更文挑战第7天】MongoDB是一款高性能、开源的NoSQL数据库,采用文档数据模型,支持丰富查询语言及二级索引。其灵活的数据模型和扩展性使其在大数据应用、实时分析、物联网、内容管理系统及电子商务平台等多种现代场景中广泛应用。例如,在大数据应用中,它可以高效存储社交媒体的非结构化数据;在实时分析中,能快速处理新数据并即时更新结果;在物联网应用中,则适用于存储大量非结构化传感器数据;而在内容管理和电子商务平台中,能提供灵活的内容存储和高效的商品搜索功能。
31 2
|
4天前
|
JSON NoSQL MongoDB
在Ubuntu 14.04上如何导入和导出MongoDB数据库
在Ubuntu 14.04上如何导入和导出MongoDB数据库
8 0
|
18天前
|
开发框架 NoSQL 关系型数据库
基于SqlSugar的开发框架循序渐进介绍(27)-- 基于MongoDB的数据库操作整合
基于SqlSugar的开发框架循序渐进介绍(27)-- 基于MongoDB的数据库操作整合
|
1月前
|
存储 NoSQL Java
使用MongoDB实现NoSQL数据库的最佳实践
使用MongoDB实现NoSQL数据库的最佳实践
|
2月前
|
存储 JSON NoSQL
【文档数据库】ES和MongoDB的对比
【文档数据库】ES和MongoDB的对比
232 1