MongoDB 到 Cosmos DB 的迁移优势

已完成

从 MongoDB 迁移到 Cosmos DB 的好处包括可伸缩性、全局分发和服务器管理。

作为首席数据库开发人员,你希望了解将数据库工作负荷迁移到 Azure 的好处。 Cosmos DB 具有在传统的基于文档的数据库中找不到的独特功能。

在本单元中,你将探索 CosmosDB 的功能,并充分利用这些功能,同时保持与现有 MongoDB 应用程序的 API 兼容性。

可伸缩性

通过将数据库迁移到 Azure,您可以受益于无限存储和弹性可伸缩性,从而提升性能。 若要指定性能,请在容器或数据库级别为吞吐量指定请求单位(RU)。

指定容器吞吐量

最常见的选项是在容器级别指定吞吐量。 这可以保证容器中所有逻辑分区的吞吐量统一,吞吐量是该容器的独占。 由于吞吐量跨逻辑分区保持一致,因此如果一个分区超出吞吐量,即使其他分区具有可用的吞吐量,也会受到速率限制。 这就是为什么配置分区键以避免热分区很重要。

指定数据库吞吐量

通过在数据库级别指定吞吐量,吞吐量将在容器之间共享。 如果容器吞吐量定期变化,但数据库的总吞吐量保持相对静态,这非常有用。 每个容器中的吞吐量在逻辑分区之间仍保持一致,如果一个分区超出吞吐量,即使其他分区具有可用的吞吐量,也会受到速率限制。

可以随时更改吞吐量,容器或数据库的最大吞吐量不受限制。

有关迁移优势的详细信息,请参阅 将 MongoDB 移动到 Azure Cosmos DB 的“合理性”部分。

多区域

Azure Cosmos DB 可跨所有区域全局分布。 您可以将数据库定位在靠近用户的位置,或者,如果您有全球用户分布,您可以随时增加或删除地区。 通过将数据靠近用户,可以降低延迟并提高用户体验。

如果您的数据库仅位于一个区域,则服务级别协议(SLA)保证数据库的可用性为99.99%;而如果部署到多个区域,则可享受99.999%的读写可用性。 即使发生区域故障,Azure Cosmos DB 也会在维护 SLA 的同时自动故障转移到另一个区域。

在保持定义的一致性级别的同时,会自动处理区域之间的复制。

吞吐量是在数据库或容器级别配置的,而不是在区域级别配置的。 因此,您将在自动部署到的所有区域中拥有相同的吞吐量。

服务器管理

Azure Cosmos DB 是一项托管服务,需要对设置和持续作进行最少的管理。

全球分布

将数据复制到另一个区域是一个关键事件。 您只需指定区域,数据将复制到指定的区域,其中包括所有数据、吞吐量设置,而且复制将自动配置。

架构和索引管理

Cosmos DB 与架构无关,并自动为所有数据编制索引。 这样就无需维护数据库架构和应用程序的架构索引。 这会删除大量工作负荷,尤其是在数据库全局分布时。