瑞士军刀——Azure Cosmos DB 上
Azure Cosmos DB 是一款功能强大的数据库服务,它在分区、吞吐量、一致性等方面有着独特的设计,同时支持多种数据库模型和 API。下面将详细介绍这些内容。
1. Azure Cosmos DB 中的分区
分区与 Azure Cosmos DB 的扩展直接相关,它能够对传入请求进行负载均衡。Azure Cosmos DB 中有两种不同类型的分区:
- 物理分区 :由固定存储和可变数量的计算资源组合而成。这种分区由 Cosmos DB 完全管理,用户无法直接影响数据的物理分区方式以及服务对这些分区的处理方式,也不清楚当前正在使用的分区数量。因此,不建议基于此概念设计容器。
- 逻辑分区 :包含具有相同分区键的数据。用户可以通过在每个实体中指定分区键来控制数据的分区方式。需要注意的是,每个逻辑分区的存储限制为 10 GB,并且所有数据必须存储在一个物理分区内。
分区的工作流程如下:
1. 每次预配新容器并提供多个请求单位(RUs)时,Cosmos DB 必须预配物理分区,以处理 RUs 数量指定的请求数。
2. 如果指定的 RUs 数量超过分区每秒可处理的最大请求数,Cosmos DB 将根据需求预配更多分区。
3. 为分区键哈希分配空间,所有预配的分区必须分配相同的空间,以实现均匀分布。
4. 如果某个分区在一段时间后达到其存储限制,它将被拆分为两个新分区,数据将在它们之间均匀分布。
不同数据库模型使用的分区键不同,例如表模型使用分区键,SQL 模型使用自定义路径。如果容器
超级会员免费看
订阅专栏 解锁全文


被折叠的 条评论
为什么被折叠?



