你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

有关 Azure Cosmos DB 的常见问题

适用于: NoSQL MongoDB Cassandra Gremlin

常规

Azure Cosmos DB 的典型用例有哪些?

Azure Cosmos DB 非常适合用于 Web、移动、游戏和 IoT 用例。 在这些用例中,自动缩放、可预测的性能、毫秒响应时间的快速排序,以及查询无架构数据的能力非常重要。 Azure Cosmos DB 有助于快速开发,且支持应用程序数据模型的连续迭代。 管理用户生成的内容和数据的应用程序经常映射到 Azure Cosmos DB 的常见用例

Azure Cosmos DB 如何提供可预测的性能?

请求单位 (RU) 是 Azure Cosmos DB 中吞吐量的衡量单位。 单个请求单位吞吐量对应于 1 千位文档的 GET HTTP 操作的吞吐量。 在 Azure Cosmos DB 中进行的每个操作(包括读取、写入、查询和存储过程执行)都具有一个确定性的请求单位值,该值基于完成该操作所需的吞吐量。 你不必被迫考虑与应用程序吞吐量相关的 CPU、IO 和内存,而是可以从请求单位的角度来考虑。

可以为每个 Azure Cosmos DB 容器配置以每秒请求单位 (RU/s) 表示的预配吞吐量。 你可以将单个请求设为基准来以请求单位进行测量,并创建容器来处理该容器一秒内所有请求的请求单位总和。 也可以根据应用程序的发展需求,相应地纵向扩展或纵向缩减容器的吞吐量。 若要了解如何测量请求单位,请参阅吞吐量计算器

Azure Cosmos DB 如何支持各种数据模型(例如键/值、纵栏表、文档和图形)?

键/值(表)、纵栏表、文档和图形数据模型都是原本就支持的,因为 Azure Cosmos DB 是基于 ARS(原子、记录和序列)设计构建的。 原子、记录和序列可以轻松映射和投影到各种数据模型。 一部分模型的 API 可通过 ARS 设计使用(MongoDB RU、NoSQL、Table、Apache Cassandra 和 Apache Gremlin)。 Azure Cosmos DB 还支持其他 API,例如 MongoDB vCore、Cassandra MI 或 PostgreSQL。

什么是 Azure Cosmos DB 容器?

容器是一组项。 容器可以跨一个或多个分区,并且能够缩放来处理几乎无限的存储或吞吐量。

容器被称为
用于 NoSQL 的 Azure Cosmos DB 容器
Azure Cosmos DB for MongoDB RU 集合
用于 MongoDB vCore 的 Azure Cosmos DB 集合
适用于 Apache Cassandra 的 Azure Cosmos DB
用于 Apache Gremlin 的 Azure Cosmos DB Graph
Azure Cosmos DB for Table

容器是一个计费实体,其中成本由吞吐量和已用存储确定。 每个容器根据预配的吞吐量和已用的存储空间按小时计费。 有关详细信息,请参阅 Azure Cosmos DB 定价

是否可以使用多个 API 来访问我的数据?

Azure Cosmos DB 是 Microsoft 提供的全球分布式多模型数据库服务。 多模型是指 Azure Cosmos DB 支持多个 API 和数据模型。 在这种范例中,不同的 API 对存储和线路协议使用不同的数据格式。 例如,NoSQL 使用 JSON,MongoDB 使用二进制编码的 JSON (BSON),Table 使用实体数据模型 (EDM),Cassandra 使用 Cassandra 查询语言 (CQL),Gremlin 使用 JSON 格式。 因此,建议对给定帐户中的所有数据访问使用相同的 API。

是否可以将 Azure Cosmos DB 直接与其他服务集成?

是的。 Azure Cosmos DB API 允许直接集成。 例如,Azure Cosmos DB REST API 可以与用于 CRUD 操作的 Azure API 管理集成,而无需使用 Azure Functions 等中间服务。

Azure Cosmos DB 是否符合 HIPAA?

是,Azure Cosmos DB 符合 HIPAA。 HIPAA 针对可识别个人身份的健康信息的使用、泄露与保护制定了要求。 有关详细信息,请参阅 Microsoft Trust Center(Microsoft 信任中心)。

Azure Cosmos DB 的存储限制有哪些?

对于容器可以存储在 Azure Cosmos DB 中的数据总量并没有任何限制。

Azure Cosmos DB 的吞吐量限制有哪些?

对于 Azure Cosmos DB 中容器可以支持的吞吐量总量并没有任何限制。 关键是要将工作负载大致均匀地分布在数量足够多的分区键上。

直接连接和网关连接模式是否加密?

是的,两种模式始终完全加密。

Azure Cosmos DB 的费用是多少?

预配的容器数目、容器的联机小时数以及每个容器的预配吞吐量决定了 Azure Cosmos DB 使用费用。 有关更多定价详细信息,请参阅 Azure Cosmos DB 定价

如何获取与 Azure Cosmos DB 相关的其他帮助?

若要询问技术问题,可以在下述两个问答论坛之一发帖:

若要修复帐户问题,请在 Azure 门户中提交支持请求

跨不同的资源组、订阅和租户迁移 Azure Cosmos DB 帐户

如何将 Azure Cosmos DB 帐户迁移到其他资源组或其他订阅?

将 Cosmos DB 帐户迁移到其他资源组或订阅的一般准则在 将 Azure 资源移动到新的资源组或订阅 文章中介绍。

成功根据一般准则移动 Azure Cosmos DB 帐户后,任何与该帐户相关联的标识(系统分配或用户分配)都必须重新设置。 此重新分配是必需的,以确保这些标识继续具有访问 Key Vault 密钥所需的权限。

警告

如果 Cosmos DB 帐户启用了客户托管密钥,则只有在帐户处于活动状态时,才能将帐户迁移到其他资源组或订阅。 无法迁移处于“已吊销”状态的帐户。

如何将 Azure Cosmos DB 帐户迁移到其他租户?

如果 Cosmos DB 帐户启用了客户托管密钥,则仅当帐户是跨租户客户管理的密钥帐户时,才能迁移该帐户。 有关详细信息,请参阅有关如何 使用 Azure Key Vault 为 Azure Cosmos DB 帐户配置跨租户客户管理的密钥的指南。

警告

迁移后,请务必将 Azure Cosmos DB 帐户和 Azure Key Vault 保留在单独的租户中,以保留原始跨租户关系。 确保 Key Vault 密钥在 Cosmos DB 帐户迁移完成之前保持原位。

迁移到连续备份模式

迁移期间和之后我应该期待什么?

从定期模式迁移到连续模式时,无法运行任何执行帐户级别更新或删除的控制平面操作。 例如,在迁移过程中,无法运行诸如添加或删除区域、账户故障切换、更新备份策略等操作。 迁移时间取决于数据大小和帐户中的区域数。 迁移帐户的还原操作仅在迁移成功完成之后才能成功。

迁移完成后,可以还原帐户。 如果迁移在太平洋标准时间下午 1:00 完成,则可以从太平洋标准时间下午 1:00 开始执行时间点还原。

迁移是否仅在帐户级别发生?

是的。

哪些帐户可以作为连续备份的备份迁移目标?

使用共享、预配或自动缩放预配吞吐量的 API for NoSQL、API for Table、Gremlin API 和 API for MongoDB 帐户支持迁移到连续备份。

启用了 Azure Synapse Link 或为一个或多个集合禁用 Azure Synapse Link 的帐户无法迁移到连续备份。

迁移需要时间吗? 典型的时间是什么?

迁移需要不同的时间,这在很大程度上取决于数据大小和帐户中的区域数。 可以使用 Azure CLI 或 PowerShell 命令获取迁移状态。 对于具有数十 TB 数据的大型帐户,迁移最多可能需要几天才能完成。

将具有定期备份的多区域写入 (mrw) 帐户迁移到具有连续备份的多区域写入是否需要时间?

是的,此迁移需要花费大量时间,这在很大程度上取决于需要等待所有旧的暂定写入在连续备份迁移期间耗尽。 可以使用 Azure CLI 或 PowerShell 命令获取迁移状态。 对于具有数十 TB 数据的大型帐户,迁移最多可能需要几天才能完成。

迁移是否会导致任何可用性停机?

否,迁移操作在后台进行。 因此,客户端请求不会受到影响。 但是,我们需要在迁移期间执行一些后端作,如果帐户负载过大,可能需要额外的时间。

如果迁移失败,会发生什么情况? 是否仍获取定期备份或连续备份?

启动迁移过程后,该帐户以连续模式启用。 如果迁移失败,则必须再次启动迁移,直到迁移成功。

如何在迁移之前/期间/之后执行还原到某个时间点的操作?

假设你在t1开始迁移并在t5完成,那么在t1t5之间不能使用还原时间戳。 此外,假设你的帐户现在处于连续模式。 若要还原到之后 t5的某个时间,请使用 Azure 门户、CLI 或 PowerShell 执行还原,就像使用连续帐户一样。 此自助还原请求只能在迁移完成后完成。 若要还原到 t1 之前的某个时间点,可以像平常使用定期备份帐户一样提交支持请求。 迁移后,最多需要 30 天才能执行定期还原。 在这 30 天内,可以根据迁移前帐户的备份保留/间隔进行还原。 例如,如果备份配置为按 1 小时间隔保留 24 个副本,则可以在两(t1 – 24 hours)t1者之间随时还原。

迁移期间会阻止哪些帐户级别的控制平面操作?

添加/删除区域、故障转移、更改备份策略和导致数据移动的任何吞吐量更改等作在迁移过程中会被阻止。

如果由于某些基础问题导致迁移失败,是否会阻止控制平面操作,直到重试并成功完成迁移?

失败的迁移不会阻止任何控制平面操作。 如果迁移失败,请重试直到成功,然后再执行其他控制平面操作。

是否可以取消迁移?

无法取消迁移,因为迁移不是可逆的作。 通过技术支持团队可暂时中止迁移,允许脱机操作继续执行。 但是,无法移回定期备份状态。

是否有工具可以帮助根据数据使用情况和区域数估算迁移时间?

没有用于估算时间的工具。 我们的测试和缩放运行表明,具有 1 TB 数据的帐户大约需要 90 分钟才能完成。 对于多区域帐户,将总数据大小计算为 Number_of_regions * Data_in_single_region

鉴于连续备份模式现已正式发布,您是否仍建议恢复您的帐户副本? 在决定迁移生产帐户之前,是否建议在副本上尝试迁移?

测试连续备份模式功能,以在迁移生产帐户之前验证其是否按预期工作。 迁移是一种单向作,无法撤消。

免费试用 Azure Cosmos DB

有免费的帐户吗?

是的,您可以注册一个带有 1,000 RU/秒和 25GB 免费的 数据库帐户

如果你不熟悉 Azure,可以注册 Azure 免费帐户,这样可以得到 30 天试用期和信用额度,让你试用所有 Azure 服务。 如果你有 Visual Studio 订阅,则还有资格免费获取 Azure 信用额度,可用于任何 Azure 服务。

也可以使用 Azure Cosmos DB 模拟器在本地免费开发和测试应用程序,而无需创建 Azure 订阅。 如果对应用程序在 Azure Cosmos DB 模拟器中的工作情况感到满意,可以转为在云中使用 Azure Cosmos DB 帐户。

Azure Cosmos DB 入门

如何注册 Azure Cosmos DB?

Azure 门户中提供了 Azure Cosmos DB。 首先注册 Azure 订阅。 注册后,可以将 Azure Cosmos DB 帐户添加到你的 Azure 订阅。

如何向 Azure Cosmos DB 进行身份验证?

对所有支持该身份验证方法的 API,使用 Microsoft Entra ID 进行 Azure Cosmos DB 的身份验证。 对于不支持Microsoft Entra ID 身份验证的 API,请谨慎使用密钥。 确保安全存储生产帐户的密钥,例如在 Azure Key Vault 中。

Azure Cosmos DB 在何处可用?

若要了解 Azure Cosmos DB 的区域可用性,请参阅 Azure 产品的区域可用性。 可以将数据库计入其中一个或多个区域。

Azure Cosmos DB 的软件开发工具包 (SDK) 支持配置它们用于连接的区域。 在大多数 SDK 中,`PreferredLocations`` 值设置为提供 Azure Cosmos DB 的任意 Azure 区域。

通过 Azure 数据中心在全球范围内分发数据时是否需要注意什么?

Azure 区域页面中指定的那样,Azure Cosmos DB 遍布于所有 Azure 区域。 由于它属于核心 Azure 服务,因此每个新的数据中心都有 Azure Cosmos DB。

设置区域时,请记住,Azure Cosmos DB 遵从 主权和政府云的要求。 例如,不能从主权区域复制数据。 同样,也无法通过外部帐户启用到其他主权位置的复制。

是否可以在容器级吞吐量预配与数据库级吞吐量预配之间进行切换?

容器和数据库级吞吐量预配是单独的产品/服务,在任一产品/服务之间切换需要将数据从源迁移到目标。 你需要创建新的数据库或容器,然后使用批量执行工具库Azure 数据工厂迁移数据。

Azure CosmosDB 是否支持时序分析?

是,Azure CosmosDB 支持时序分析。 你可以使用更改源来基于时序数据生成聚合的视图。 可以使用 Apache Spark 流式处理或其他流数据处理器扩展此方法。

什么是 Azure Cosmos DB 服务配额和吞吐量限制?

有关服务配额和吞吐量限制的信息,请参阅服务配额吞吐量限制