亚马逊声称,从 MongoDB 迁移到 DocumentDB "就像将数据库端点更改为新的 Amazon DocumentDB 集群一样简单"。
我们定期通过运行 6 个 MongoDB 测试套件(共 1,481 个测试)来评估 DocumentDB 的兼容性声明,针对 DocumentDB 的 API 仿真进行测试。这是我们用来测试 MongoDB 在每次数据库发布时的自身一致性和正确性的套件,也是 MongoDB 完整 API 的最佳代表。
测试包括
● jsCore:大约 1,000 个关于 MongoDB CRUD 操作 和数据库命令的测试
● aggregation:超过 300 个关于 MongoDB 聚合管道的测试
● jsCore_decimal:评估使用 十进制数据类型的应用程序的正确行为,这种数据类型适用于金融和科学工作负载中常见的精确分数数值数据
● change_streams:测试 MongoDB change streams,开发人员使用它来构建事件驱动的数据管道,这些管道能够实时响应数据库更改
● jsCore_txns:评估 MongoDB 中的 多文档 ACID 事务的正确行为
● jsonSchema:测试 MongoDB 提供的 数据治理控制
在测试时(2022 年 1 月),DocumentDB 仿真 MongoDB 4.0 协议的子集。与 DocumentDB 不同,MongoDB Atlas(完全托管的 MongoDB 服务)支持最新的 MongoDB 6.0 版本。
与 MongoDB 的 API 仿真比较,所有正确性测试中有超过 64% 失败。对于开发者来说,这意味着
任何依赖此功能的现有 MongoDB 应用程序在迁移到 DocumentDB 时都需要重新设计
针对 DocumentDB API 编写的任何新应用程序只支持 MongoDB 功能的子集
为 DocumentDB 编写的任何应用程序都将锁定在 AWS 上。
测试数量 | 成功 | 失败 | |
---|---|---|---|
jsCore | 1030 | 381 | 649 |
聚合 | 328 | 97 | 231 |
jsCore_Decimal | 14 | 14 | 0 |
change_streams | 39 | 8 | 31 |
jsCore_txns | 49 | 21 | 28 |
jsonSchema* | 21 | 2 | 19 |
总计 | 1,481 | 523 | 958 |
*DocumentDB API 仿真不支持的功能
从功能角度来看,DocumentDB 最接近 2018 年发布的 MongoDB 4.0。因此,开发者需要
在应用程序层重新实现所需的数据库功能,这会减慢应用程序开发的速度
将多份数据移动到相邻的 AWS 技术,这将导致开发成本和运营成本的增加以及平台复杂性的增加
主要差距包括
支持的 MongoDB 4.0 聚合管道阶段和查询语言运算符不到 50%。缺失的功能包括
没有架构治理来控制数据质量。
尽管声称支持变更流,但超过80%的MongoDB变更流正确性测试仍然失败,这是由于DocumentDB。
在4.0更新中添加的DocumentDB多文档ACID事务支持与MongoDB事务相比有限,标准测试套件的失败率超过一半。
相比之下,Atlas 在每个新数据库版本宣布为“一般可用”时立即更新,这意味着开发者无需等待数月或数年即可访问最新的平台增强功能。自2021年6月MongoDB 5.0发布以来,Atlas 现在更新得更频繁,每个季度都提供新的GA版本,这使得DocumentDB更加落后。MongoDB 5.0是第一个提供稳定API的版本,允许用户将应用程序绑定到MongoDB API的特定版本。这让他们有信心,即使在数据库升级的情况下,代码也能连续多年不间断地运行。稳定API为您提供了投资保护和API稳定性的水平,这在大多数其他数据库(包括DocumentDB)中都是不可能的。
这项服务由MongoDB及其合作伙伴生态系统的数千名支持工程师、顾问和解决方案架构师提供支持,这些人员在过去十年中支持了数以万计的MongoDB客户,积累了集体MongoDB知识。
安全港
对我们产品中描述的任何功能或功能的发展、发布和时机均由我们自行决定。此信息仅用于概述我们的产品方向,不应依赖于做出购买决策,也不是提供任何材料、代码或功能的承诺、保证或法律义务。