从 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% 的 SLA 读写可用性。 即使发生区域故障,Azure Cosmos DB 也会在维护 SLA 的同时自动故障转移到另一个区域。
在保持定义的一致性级别的同时,将自动处理区域之间的复制。
吞吐量是在数据库或容器级别(而不是区域级别)配置的。 因此,自动部署到的所有区域都具有相同的吞吐量。
服务器管理
Azure Cosmos DB 是一项托管服务,只需要对设置和继续操作进行最少的管理。
全球分布
将数据复制到另一个区域是一个统包事件。 只需指定区域,数据就会被复制到该区域,并在其中自动配置所有数据、吞吐量设置和复制。
架构和索引管理
Cosmos DB 与架构无关并自动为所有数据编制索引。 这样就无需维护数据库架构和应用程序的架构索引。 这会减少很多工作量,尤其在全球分布数据库的时候。