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

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



