你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure DocumentDB 和 Azure Cosmos DB 都是功能强大的 NoSQL 数据库服务,旨在帮助你使用灵活的 JSON 数据模型生成成功的应用程序。 虽然两者都为 NoSQL 数据库市场提供服务,但它们针对不同的用例和体系结构模式进行优化。 本指南可帮助你了解哪种服务最符合特定要求。
根据需要选择适当的服务
Azure DocumentDB 和 Azure Cosmos DB 旨在支持你成功使用 NoSQL 数据库。 关键是选择符合应用程序的特定要求和增长模式的服务。
何时选择 Azure Cosmos DB
Azure Cosmos DB 针对需要 横向扩展情景 进行了优化:
- 全球分发和高可用性:行业领先的 99.999% 可用性服务级别协议(SLA),跨多个区域自动故障转移
- 大规模处理和性能:专为需要每秒处理数百万次操作且响应时间为个位数毫秒的应用程序而设计
- 即时缩放:自动和透明缩放,可立即响应流量高峰,无需预热期
- 任务关键型应用程序:企业级安全性、合规性认证,并在极端负载下保证性能
- 微服务体系结构:非常适合需要跨多个服务和区域的一致性能的分布式系统
- AI 应用程序和矢量搜索:支持嵌入的本机矢量数据库功能,支持检索扩充生成(RAG)、语义搜索和 AI 代理内存系统
- 生成式 AI 工作负载:使用多个算法(倒排文件(IVF)、分层可导航小型世界(HNSW)、DiskANN)集成矢量搜索,用于存储和查询矢量嵌入以及操作数据
理想的用例:高流量 Web 应用、IoT 数据收集、实时游戏和全球购物网站。 也非常适合 AI 聊天机器人、AI 代理、RAG 应用和语义搜索。 非常适合需要全球保证性能的任何应用。
何时选择 Azure DocumentDB
Azure DocumentDB 针对需要纵向扩展 场景 进行优化:
- 丰富的查询功能:高级 MongoDB 查询语言(MQL)支持复杂的聚合管道、联接和分析查询
- 熟悉的开发体验:与现有驱动程序、工具和开发模式的完全 MongoDB 线路协议兼容性
- 灵活的数据建模:基于 PostgreSQL 引擎构建,为复杂文档结构和高级索引提供可靠的支持
- 经济高效的扩展:基于 vCore 的定价模型,可预测成本的垂直扩展
- 高级查询功能:支持全文搜索、地理空间查询、矢量搜索和复杂的聚合操作
理想的用例:非常适合内容系统、数据分析工具和具有复杂查询的应用。 还非常适合从 MongoDB 移动,或者需要高级文档数据库功能时。
体系结构和扩展性差异
了解每个服务的基本体系结构方法有助于解释其不同的优势和最佳用例。
Azure Cosmos DB(水平扩展体系结构)
Azure Cosmos DB 使用 基于请求单位(RU)的模型 ,该模型专为弹性水平缩放而设计:
- 自动分区:数据自动分布在多个分区之间,以实现最佳性能
- 精细吞吐量控制:支持以微小增量进行缩放,增量可小至传统 vCore 的 1/100
- 无服务器选项:可变工作负荷的按作付费定价
- 多模型支持:对文档、键值、图形和列系列数据模型的本机支持
Azure DocumentDB (Scale-Up 扩展架构)
Azure DocumentDB 使用 基于 vCore 的模型 ,该模型针对垂直缩放和丰富的功能进行优化:
- 专用计算资源:熟悉的群集层(M30、M40、M50+)以及专用 CPU、内存和存储
- PostgreSQL 基础:使用 PostgreSQL 成熟的生态系统和高级功能
- MongoDB 兼容性:与 MongoDB 工具和应用程序完全线路协议兼容性
- 高级索引:支持文本索引、地理空间索引、矢量索引和复合索引
功能对比
下表提供关键功能的并排比较,以帮助你评估哪种服务最符合你的要求。
| Azure Cosmos DB | Azure DocumentDB | |
|---|---|---|
| 可用性 SLA | 99.999% (多区域) | 99.995% |
| 全局分发 | 具有自动故障转移的统包多区域方案 | 使用地理副本的区域部署 |
| 缩放模型 | 横向(基于 RU) | 垂直(基于 vCore) |
| 查询复杂性 | 针对点读取和简单查询进行优化 | 高级聚合管道和复杂联接 |
| MongoDB 兼容性 | 核心MongoDB操作 | 完整的 MongoDB 线路协议和 MQL 功能 |
| 矢量搜索 | 使用 IVF、HNSW、DiskANN 算法的原生矢量数据库 | 集成了 HNSW 和 IVF 的 pg_vector 支持 |
| AI/RAG 应用程序 | 内置矢量嵌入、AI 代理内存、语义缓存 | RAG 和语义应用程序的矢量搜索 |
| 定价模型 | 变量(基于 RU)或无服务器 | 可预测(计算 + 存储) |
| 开发模型 | 云原生应用程序 | MongoDB 应用程序迁移和开发 |
性能特征
每个服务基于其基础体系结构和优化策略在不同的性能方案中表现出色。
Azure Cosmos DB 优势
- 超低延迟:全球单位数毫秒响应时间
- 即时缩放:能够在流量高峰时立即响应,无需预热
- 吞吐量保证:SLA 支持的性能承诺
- 点读取优化:按 ID 和分区键快速执行单文档查找
Azure DocumentDB 优势
- 查询性能:针对复杂的聚合操作和分析查询进行了优化
- 索引灵活性:针对各种查询模式的高级索引策略
- 事务支持:使用 MongoDB 语义的 ACID 事务
- 分析工作负载:更适合报表和商业智能场景
集成和生态系统
这两种服务都提供丰富的集成功能,尽管它们基于其体系结构基础与不同的生态系统和工具相连。
Azure Cosmos DB 集成
Azure Cosmos DB 具有以下集成:
- Azure Synapse Link:不提取、转换和加载的分析(ETL)进程
- Azure Functions:具有更改源触发器的无服务器计算
- Power BI:商业智能的直接连接
- Azure AI 服务:适用于 AI 和 ML 工作负载的本机集成
- Azure OpenAI:用于嵌入生成和 RAG 应用程序的无缝集成
- LangChain 和 AI 框架:对常用 AI 开发框架的内置支持
- 语义内核:用于生成具有持久性内存系统的 AI 代理的集成
Azure DocumentDB 集成
Azure DocumentDB 具有以下集成:
- MongoDB 生态系统:与现有 MongoDB 工具和库完全兼容
- PostgreSQL 扩展:访问丰富的 PostgreSQL 扩展生态系统
- Azure 服务:与 Azure 监视、安全性和网络服务集成
- 开源:使用 MIT 许可构建在开源 DocumentDB 引擎之上
迁移注意事项
评估服务之间的移动时,请考虑应用程序的当前体系结构、性能要求和未来的增长计划。
迁移到 Azure Cosmos DB
如果当前应用程序有以下情况,请考虑使用 Azure Cosmos DB:
- 经历无法预测且需要即时缩放的网络流量模式
- 需要全局分布,以提高用户的邻近性
- 简单查询模式侧重于文档查找
- 需要保证低延迟性能
迁移到 Azure DocumentDB
请考虑使用 Azure DocumentDB,如果您的当前应用程序:
- 使用复杂的 MongoDB 查询和聚合管道
- 需要高级索引和查询优化
- PostgreSQL 成熟功能集的优点
- 需要可预测的基于 vCore 的定价
入门指南
使用任一服务迈出第一步非常简单,全面的资源支持你的使用过程。 这两种服务都提供全面的迁移工具和支持,可帮助你成功转换:
- 评估工具:评估当前工作负载和要求
- 迁移实用工具:用于数据和应用程序迁移的本机工具
- 文档和示例:这两个服务的广泛资源
- 支持选项:Azure 的支持计划来帮助您完成迁移过程