likes
comments
collection
share

全面对比Amazon DocumentDB 与 MongoDB

作者站长头像
站长
· 阅读数 13

全面对比Amazon DocumentDB 与 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 配合使用。

全面对比Amazon DocumentDB 与 MongoDB

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

全面对比Amazon DocumentDB 与 MongoDB

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 正确性测试。

全面对比Amazon DocumentDB 与 MongoDB

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

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

想要了解详情?

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

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

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

全面对比Amazon DocumentDB 与 MongoDB

常见问题解答

何时使用文档数据库?

文档数据库将数据存储在类似 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 数据库。