你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure Cosmos DB for NoSQL 是一个完全托管的无服务器 NoSQL 和矢量数据库,用于新式应用开发,包括 AI 应用程序和代理。 凭借 SLA 支持的速度和可用性以及即时动态可伸缩性,它非常适合实时 NoSQL 应用程序,这些应用程序需要高性能和分布式计算(在大量的 NoSQL 和矢量数据上)。
此服务专门为 NoSQL 工作负载设计,以适应横向扩展场景。 它支持使用类似于 SQL 的查询语言查询 JSON 数据,使熟悉 SQL 语法的开发人员能够接近,同时使用 NoSQL 非结构化数据存储的灵活性。
全局分发和可伸缩性
Azure Cosmos DB for NoSQL 旨在跨多个区域进行水平扩展,确保全球用户能够低延迟访问数据。 借助其一站式的全球分发技术,您只需执行几个操作即可跨 Azure 区域复制数据。 该服务会自动处理分区和缩放,以满足应用程序的性能和存储需求。
灵活的架构和 JSON 数据模型
NoSQL API 使用基于 JSON 的数据模型,允许你存储和查询非结构化或半结构化数据,而无需固定架构的约束。 这种灵活性使它非常适合数据结构随时间变化的应用程序,例如 IoT、电子商务和社交媒体平台。
低延迟和高可用性
Azure Cosmos DB for NoSQL 保证在第 99 百分位数上实现个位数毫秒级的读写延迟。 它还为多区域配置提供 99.999% 可用性,确保应用程序即使在高峰使用或区域性中断期间仍保持响应和可靠。
类似于 SQL 的查询语言
适用于 NoSQL 的 API 提供了类似于 SQL 的查询语言来查询 JSON 数据,使开发人员无需学习新语法即可检索和作数据。 此功能弥合了传统关系数据库用户与 NoSQL 系统之间的差距。
要求和依赖项
若要使用 Azure Cosmos DB for NoSQL,需要一个 Azure 订阅。 该服务与其他 Azure 服务(例如 Azure Functions、Azure 逻辑应用和 Azure Synapse Analytics)无缝集成,使你能够构建端到端解决方案。 软件开发工具包(SDK)适用于常用的编程语言,包括 .NET、Python、TypeScript、Rust、Go、JavaScript 和 Java。
限制和注意事项
虽然 Azure Cosmos DB for NoSQL 功能十分通用,但它针对基于 JSON 的 NoSQL 工作负载进行了优化,适用于横向扩展方案。
如果应用程序需要支持其他数据库模型,例如 MongoDB、Cassandra、PostgreSQL 或 Gremlin,请考虑以下服务之一:
- Azure DocumentDB
- 适用于 Apache Cassandra 的 Azure 托管实例
- Microsoft Fabric 中的图形
- Azure Database for PostgreSQL
此外,服务的成本模型基于预配的吞吐量(RU/s),因此需要仔细规划来优化工作负荷的成本。
Azure Cosmos DB 与 Azure DocumentDB
Azure Cosmos DB 和 Azure DocumentDB 都是功能强大的 NoSQL 数据库服务,旨在帮助你使用灵活的 JSON 数据模型生成成功的应用程序。 Azure Cosmos DB 针对需要全局分发、大规模缩放和即时缩放的 横向扩展方案 进行了优化。 它提供 99.999% 的服务可用性级别协议(SLA),并支持跨多个区域的自动故障转移。 这种可靠性使它非常适合需要全球可靠性能的高流量 Web 应用、IoT 数据收集、实时游戏和全球在线商店。
Azure DocumentDB 针对可优先处理丰富查询功能和熟悉的开发体验的 纵向扩展方案 进行优化。 Azure DocumentDB 由开源 DocumentDB 引擎提供支持。 DocumentDB 构建在具有完整 MongoDB 线路协议兼容性的 PostgreSQL 引擎上。 Azure DocumentDB 擅长复杂的聚合管道、分析查询和高级文档数据库功能。 它非常适合内容管理系统、分析平台、MongoDB 迁移以及需要复杂查询操作并使用基于 vCore 的可预测定价的应用程序。
| Azure Cosmos DB | Azure DocumentDB | |
|---|---|---|
| 缩放模型 | 横向(基于 RU) | 垂直(基于 vCore) |
| 可用性 SLA | 99.999% (多区域) | 99.995% |
| 查询复杂性 | 针对点读取和简单查询进行优化 | 高级聚合管道和复杂联接 |
| 全局分发 | 具有自动故障转移的统包多区域方案 | 使用地理副本的区域部署 |
| 定价模型 | 变量(基于 RU)或无服务器 | 可预测(计算 + 存储) |
有关 Azure DocumentDB 与 Azure Cosmos DB 之间的差异的更多详细信息,请参阅 Azure DocumentDB 与 Azure Cosmos DB 决策指南。