全面对比Amazon DocumentDB 与 MongoDB

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云数据库 Redis 版,社区版 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
相关文章
|
7天前
|
人工智能 NoSQL atlas
MongoDB Atlas Vector Search与Amazon Bedrock集成已全面可用
MongoDB Atlas Vector Search知识库与Amazon Bedrock的最新集成,将极大加速生成式AI应用的开发
2498 1
|
12月前
|
存储 NoSQL Oracle
「数据库选型」卫报从MongoDB迁移到Amazon RDS上的PostgreSQL
「数据库选型」卫报从MongoDB迁移到Amazon RDS上的PostgreSQL
|
存储 新零售 弹性计算
心动《另一个伊甸》从Amazon DynamoDB迁移MongoDB
阿里云MongoDB提供了很好的保障和性能,使我们的业务成本有了明显的下降
心动《另一个伊甸》从Amazon DynamoDB迁移MongoDB
|
7天前
|
存储 NoSQL MongoDB
MongoDB如何创建数据库
MongoDB如何创建数据库
|
5天前
|
存储 SQL NoSQL
什么是 MongoDB,为什么它是当今最受欢迎的数据库之一?
什么是 MongoDB,为什么它是当今最受欢迎的数据库之一?
|
7天前
|
JSON NoSQL MongoDB
理解Nosql数据库的mongodb
【5月更文挑战第5天】MongoDB是2009年发布的一款通用型NoSQL数据库,结合了关系模型和NoSQL的优点,适用于各种现代应用。其特点包括图形界面、数据服务、云基础设施集成(AWS, Azure, Google Cloud)。它具备全面的查询能力、ACID事务、可调整的一致性保证,并有多语言驱动及工具,可在任何地方运行。
71 4
|
7天前
|
存储 NoSQL MongoDB
MongoDB数据库转换为表格文件的Python实现
MongoDB数据库转换为表格文件的Python实现
41 0
|
7天前
|
存储 NoSQL 关系型数据库
Percona XtraBackup是否支持MongoDB数据库备份?
【5月更文挑战第13天】Percona XtraBackup是否支持MongoDB数据库备份?
35 1
|
3天前
|
存储 NoSQL MongoDB
使用mongodb数据库实例
【5月更文挑战第9天】MongoDB中的集合类似关系数据库的表,但不强制模式,允许嵌入式文档以实现更灵活的数据布局。安装MongoDB在Ubuntu上涉及添加源列表和更新,CentOS则需创建配置文件。MongoDB支持备份和恢复,以及全文搜索。其灵活模式和动态模式减少了开发中的复杂性,但并非无模式,大部分数据仍具结构化特点。
84 2
|
7天前
|
NoSQL atlas MongoDB
Nosql数据库MongoDB的使用场景
【5月更文挑战第5天】 MongoDB是全球性的多云数据库,可在私有、公共和混合云中运行,提供高可用性、扩展性和合规性。 安全特性包括认证、授权、审计、网络隔离和加密。可提供跨云操作、可视化工具、搜索功能和数据湖支持,适用于现代应用开发,包括边缘数据处理。
37 1