Compartir a través de

有关 Azure DocumentDB 的常见问题解答(与 MongoDB 兼容性)

获取有关 Azure DocumentDB(与 MongoDB 兼容性)的常见问题的解答。

概况

什么是 Azure DocumentDB?

Azure DocumentDB 是一项完全托管的 NoSQL 数据库服务,旨在支持具有 MongoDB 客户端和工具高度兼容性的新式应用程序开发。 它提供了一个灵活的架构、自动索引、内置矢量搜索功能、多区域分布和多个性能层,可将计算与存储分开。 有关简介,请参阅 Azure DocumentDB 概述

Azure DocumentDB 最适合哪些工作负载?

Azure DocumentDB 针对事务性和操作性的 NoSQL 工作负载、实时分析、大规模的 Web 和移动后端以及受益于矢量搜索的生成式 AI 场景进行优化。 它支持高吞吐量、水平缩放和多区域分布,以便进行低延迟访问。

Azure DocumentDB 的定价如何工作?

定价取决于性能层(预配、自动缩放或无服务器选项(如果可用)、存储、备份保留以及虚拟网络或专用终结点等额外功能。 有关详细信息和示例,请参阅 Azure 定价计算器和定价文档。

如何开始使用 Azure DocumentDB?

可以从 Azure 门户、CLI、Bicep 或 Terraform 创建群集。 文档中提供了快速入门和教程(例如 ,quickstart-portal.mdquickstart-bicep.md)。

Azure DocumentDB 是否提供服务级别协议(SLA)?

是的。 Azure DocumentDB 提供涵盖数据库、计算、存储和网络组件可用性的服务级别协议。 SLA 详细信息因配置和区域而异。

安全性

Azure DocumentDB 使用哪种传输级别加密?

Azure DocumentDB 对所有客户端和服务连接强制实施传输层安全性(TLS)。 TLS 保护客户端和服务之间的传输数据;确保客户端使用当前的 TLS 版本和受信任的根证书。

如何管理身份验证和访问控制?

Azure DocumentDB 支持本机(内置)身份验证和Microsoft Entra ID 集成,以便集中标识和访问管理。 可以创建精细的数据库用户、角色,并使用托管标识进行安全服务到服务身份验证。 请参阅Microsoft Entra ID 身份验证和安全最佳做法

是否可以在防火墙和专用链接后面运行 Azure DocumentDB?

是的。 可以使用防火墙规则限制公共访问,并允许 Azure 专用链接通过虚拟网络中的专用终结点公开群集。 此设置支持从虚拟网络资源和本地网络进行安全专用连接。 请参阅使用 Azure 专用链接和管理公共访问

建议的安全监视和日志记录做法是什么?

启用诊断日志记录并将日志发送到 Azure Monitor、Log Analytics 或安全信息和事件管理 (SIEM) 解决方案。 审核管理作、监视网络流,并为可疑行为配置警报。 与 Microsoft Sentinel 或其他 SIEM 集成,以便集中检测事件。

Connectivity

客户端如何连接到 Azure DocumentDB 群集?

客户端使用指向群集连接终结点和端口的标准 MongoDB 线路协议驱动程序进行连接。 可以通过公共终结点或专用链接进行连接,以便进行专用访问。 请参阅驱动程序的快速入门示例(例如,quickstart-nodejs.md)。

存在哪些限制网络访问的选项?

使用群集级防火墙规则来限制源 IP、启用专用链接以在 VNet 中创建专用终结点,以及配置网络安全组和虚拟网络对等互连以实现精细访问控制。 请参阅“管理公共访问并使用 Azure 专用链接”。

是否可以从本地网络进行连接?

是的。 通过 VPN 或 ExpressRoute 连接到对等虚拟网络的本地资源可以访问 Azure DocumentDB 专用链接终结点。 或者,可以将公共终结点与防火墙规则配合使用,但建议对生产工作负荷使用专用连接。

如何配置连接字符串和驱动程序设置?

使用驱动程序支持的标准 MongoDB 连接字符串格式。 包括 TLS、副本集(如果适用)和身份验证机制(用户名/密码或Microsoft Entra ID)的选项。 示例请参见特定语言的快速入门指南。

哪些延迟和吞吐量注意事项会影响连接?

客户端和群集之间的网络延迟会影响读/写延迟。 对于全球部署,请使用区域部署的群集和只读副本以最大程度地减少延迟。 有关指导,请参阅 高可用性和复制最佳做法

MongoDB 兼容性

Azure DocumentDB 支持哪些 MongoDB 版本和功能?

Azure DocumentDB 提供与 MongoDB 线路协议和许多服务器功能的广泛兼容性。 有关支持的 MongoDB 查询语言(MQL)功能的详细信息,请参阅 MongoDB 查询 Languge (MQL) 功能兼容性。 有关 MongoDB 功能集和特定版本的详细信息,请参阅 MongoDB 功能兼容性

是否可以将现有的 MongoDB 数据库迁移到 Azure DocumentDB?

是的。 可以使用标准工具(如 mongodump/mongorestore、mongoexport/mongoimport 或基于复制的方法)进行迁移。 查看 migration-options.md ,了解建议的策略和注意事项。

MongoDB 驱动程序和工具是否与 Azure DocumentDB 兼容?

大多数社区 MongoDB 驱动程序和常用工具通过 MongoDB 线路协议与 Azure DocumentDB 配合使用。 有关特定于驱动程序的配置或功能差距,请参阅兼容性文档。不支持某些服务器端 MongoDB 扩展和不兼容的存储引擎。

迁移后,我预期的行为是否有任何差异?

某些管理命令、服务器端扩展和边缘情况行为可能会发生细微差异。 在过渡环境中针对 Azure DocumentDB 测试应用程序工作负荷,并查阅兼容性指南,以确定不受支持的命令或行为。

如何在迁移之前验证应用程序是否兼容?

首先,对 Azure DocumentDB 测试群集使用相同的驱动程序和工作负载运行集成测试。 使用迁移工具暂存数据并执行功能测试,监视日志以查找兼容性错误,并查阅文档中的功能支持矩阵。

性能和扩展性

如何在 Azure DocumentDB 中缩放性能?

通过选择更高的性能层级、增加预配置吞吐量或启用自动缩放来进行调整,并通过对数据进行分区以确保均匀分布。 将计算与存储分离可以独立缩放资源。

分区如何运作,以及何时应对数据进行分片?

Azure DocumentDB 使用分区键在物理分区之间分配数据。 选择具有高基数和均匀分布的分区键,以实现可缩放的吞吐量。 有关指导,请参阅 partitioning.mdhow-to-index.md

索引和查询性能的最佳做法是什么?

使用目标索引,避免未绑定扫描,在适当情况下应用通配符/文本索引,并查看查询计划以确定瓶颈。 使用索引文档获取最佳做法和后台索引指南。

如何监视和排查性能问题?

启用诊断和指标,使用 Azure Monitor 和查询存储(如果可用)捕获慢查询,并查看吞吐量、RU 消耗(如果适用)和存储指标。 请参阅 monitor-metrics.mdtroubleshoot-common-issues.md

Azure DocumentDB 是否可以处理高写入或读取吞吐量工作负荷?

是 — 正确配置时,Azure DocumentDB 专为高吞吐量工作负荷设计。 根据需要使用适当的分区、缩放计算,并考虑副本放置和区域分发以满足延迟和吞吐量 SLA。