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

在这里插入图片描述

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

在这里插入图片描述

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 正确性测试。
在这里插入图片描述

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

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

想要了解详情?

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

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

欢迎访问MongoDB官网免费试用 MongoDB Atlas,享受真正的 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 数据库。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/734926.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单链表(下)

我们在单链表(上)中了解了一些需要实现的函数,这一篇就让我们一起来实现。 1.创建新节点 2.打印 3.尾插 4.头插 5.尾删 6.头删 7.查找 8.计算节点个数 9.在指定位置之前插入数据 10.在指定位置之前插入数据 11.删除指定位置的节点 12.删除指…

快速部署本地知识库大模型(Langchain+ChatGLM3)

使用AutoDL AI算力云:AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDL,注册后充值后进入控制台 点击租用新实例,选择机器和社区镜像langchain-chatchat如下 创建成功后进去JupyterLab 打开终端运行如下命令 $ cd /root/Langchain-Chatch…

python编程从入门到实践答案二

python编程从入门到实践 第五章 if语句1.条件测试:2.更多的条件测试:3.外星人颜色#1:4. 外星人颜色#2:5. 外星人颜色#3:6. 人生的不同阶段:7. 喜欢的水果:8. 以特殊方式跟管理员打招呼&#xff…

基于springboot+vue实现高校学生党员发展管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现高校学生党员发展管理系统演示 摘要 随着高校学生规模的不断扩大,高校内的党员统计及发展管理工作面临较大的压力,高校信息化建设的不断优化发展也进一步促进了系统平台的应用,借助系统平台可以实现更加高效便捷的党员信息…

Elasticsearch从入门到精通-03基本语法学习

Elasticsearch从入门到精通-03基本语法学习 👏作者简介:大家好,我是程序员行走的鱼 📖 本篇主要介绍和大家一块学习一下ES基本语法,主要包括索引管理、文档管理、映射管理等内容 1.1 了解Restful ES对数据进行增、删、改、查是以…

Ajax (1)

什么是Ajax&#xff1a; 浏览器与服务器进行数据通讯的技术&#xff0c;动态数据交互 axios库地址&#xff1a; <script src"https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script> 如何使用呢&#xff1f; 我们现有个感性的认识 <scr…

网页设计中通过css在一个固定宽度的div容器中让一行超出的文本隐藏并省略掉

实现效果&#xff1a; 实现的关键css&#xff1a; overflow&#xff1a;hidden&#xff1b;这个表示超出容器的内容进行隐藏 white-space&#xff1a;nowrap&#xff1b;表示文本不断行显示 text-overflow&#xff1a;ellipsis&#xff1b;表示超出的部分用省略号进行表示 …

jar运行报错Unable to read meta-data for class

目录 一、场景描述 二、解决办法 1&#xff09;情况一 2&#xff09;情况二 贴一下部署报错堆栈信息&#xff1a; java.lang.IllegalStateException: Unable to read meta-data for class com.zhh.zhhd.biz.config.Test1Configat org.springframework.boot.autoconfigure.…

数字化转型导师坚鹏:科技创新产业发展研究及科技金融营销创新

科技创新产业发展研究及科技金融营销创新 课程背景&#xff1a; 很多银行存在以下问题&#xff1a; 不清楚科技创新产业的发展现状&#xff1f; 不知道科技金融有哪些成功的案例&#xff1f; 不知道科技金融如何进行营销创新&#xff1f; 课程特色&#xff1a; 以案例…

事务【MySQL】

稍等更新图片。。。。 事务的概念 引入 在 A 转账 100 元给 B 的过程中&#xff0c;如果在 A 的账户已经减去了 100 元&#xff0c;B 的账户还未加上 100 元之前断网&#xff0c;那么这 100 元将会凭空消失。对于转账这件事&#xff0c;转出和转入这两件事应该是绑定在一起的…

【刷题】Leetcode 415 字符串相加 和 34 字符串相乘

刷题 Leetcode 415 字符串相加题目描述 思路一&#xff08;模拟大法版&#xff01;&#xff01;&#xff01;&#xff09;Leetcode 34 字符串相乘题目描述 思路一&#xff08;模拟大法版&#xff09;Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读&#xff01;&…

python 蓝桥杯之并查集

文章目录 总述合并过程查找过程算法实战实战1 总述 并查集&#xff08;Disjoint-set Union&#xff0c;简称并查集&#xff09;是一种用来管理元素分组情况的数据结构。它主要用于解决集合的合并与查询问题&#xff0c;通常涉及到以下两种操作&#xff1a; 合并&#xff08;Uni…

rtthread stm32h743的使用(七)dac设备使用

我们要在rtthread studio 开发环境中建立stm32h743xih6芯片的工程。我们使用一块stm32h743及fpga的核心板完成相关实验&#xff0c;核心板如图&#xff1a; 1.我们还是先建立工程 2.生成工程后打开mx进行配置&#xff0c;时钟配置如前所讲&#xff0c;不在赘述 3.更改mx文件…

CSS常见用法 以及JS基础语法

CSS简介 首先我们要明白css对网页的页面效果就类似于化妆的效果,使得页面更好看 我们需要明白的就是CSS怎么使用即可 首先CSS的基本语法是<style></style>标签来修改 基本语法规范是选择器n条选择规范 例如 <style>p{color : red;} </style> 这里就是将…

【Linux系统】线程

目录 一.线程的概念 (1)地址空间是进程的资源窗口 (2)轻量级进程 二.线程的理解 1.Linux中线程的实现方案 2. 线程VS进程 3.线程比进程更加轻量化 4.线程的优点 5.线程的缺点 6.线程共享的资源 7.线程私有的资源 三.地址空间虚拟到物理的转化 1.页框 2.重新理解文…

HelpLook VS GitBook:知识库优劣详解

在信息爆炸的时代&#xff0c;企业要保持竞争优势&#xff0c;就必须善于管理和利用内部的知识资产。企业知识库作为一种集中存储和共享知识的工具&#xff0c;正在成为现代企业不可或缺的一部分。 HelpLook和Gitbook是提供专业知识库的两个平台&#xff0c;也被大众熟知。它们…

C++的一些基础语法

前言&#xff1a; 本篇将结束c的一些基础的语法&#xff0c;方便在以后的博客中出现&#xff0c;后续的一些语法将在涉及到其它的内容需要用到的时候具体展开介绍&#xff1b;其次&#xff0c;我们需要知道c是建立在c的基础上的&#xff0c;所以c的大部分语法都能用在c上。 1.…

C#MQTT编程10--MQTT项目应用--工业数据上云

1、文章回顾 这个系列文章已经完成了9个内容&#xff0c;由浅入深地分析了MQTT协议的报文结构&#xff0c;并且通过一个有效的案例让伙伴们完全理解理论并应用到实际项目中&#xff0c;这节继续上马一个项目应用&#xff0c;作为本系列的结束&#xff0c;奉献给伙伴们&#x…

DDT+yaml实现数据驱动接口自动化

前言 在之前的文章中我们知道了yaml文件可以进行接口自动化。除了yaml文件&#xff0c;Excel文档也可以用来编写自动化测试用例。 一定很想知道这两者有什么区别吧&#xff1f; 1、Excel使用简单&#xff0c;维护难&#xff0c;多种数据类型转换起来比较复杂 2、yaml学习稍…

MySQL通过SQL语句进行递归查询

这里主要是针对于MySQL8.0以下版本&#xff0c;因为MySQL8.0版本出来了一个WITH RECURSIVE函数专门用来进行递归查询的 先看下表格数据&#xff0c;就是很普通的树结构数据&#xff0c;通过parentId关联上下级关系 下面我们先根据上级节点id递归获取所有的下级节点数据&#x…