zoukankan      html  css  js  c++  java
  • Azure CosmosDB (7) 分区键Partition Key

      《Windows Azure Platform 系列文章目录

      Azure Cosmos DB使用分区键(Partition Key),来对数据进行水平缩放(Horizon Scale),缩放后的数据子集被称为逻辑分区(Logical partitions)。在同一个逻辑分区的数据都有相同的分区键(Partition Key)

       

      举个例子,假设我们对上海市所有的人口数据都保存到CosmosDB中,选择不同的分区键Partition Key,则会产生不同的逻辑分区结果。

      1.假设我们按照户籍区县进行分区,因为上海市有19个区县,则会产生19个不同的逻辑分区。 

      2.假设我们按照性别进行分区,则会产生2个不同的逻辑分区(男性、女性)

      3.假设我们按照身份证号码进行分区,因为身份证号码都是唯一的。假设我们有1000条人口数据,则会产生1000个不同的逻辑分区

      管理逻辑分区

      Azure CosmosDB以透明的方式自动管理逻辑分区在物理分区(物理服务器)上的位置,以满足业务数据的横向扩展和可伸缩性,同时支持性能需求。

      随着应用程序的吞吐量和存储要求的提高,Azure Cosmos DB 可移动逻辑分区,以自动在更多的服务器之间分散负载。

      Azure Cosmos DB 使用基于哈希的分区在物理分区之间分散逻辑分区。 Azure Cosmos DB 对项的分区键值进行哈希处理。 哈希处理结果确定了物理分区。 然后,Azure Cosmos DB 在物理分区之间均匀分配分区键哈希的键空间。

      与访问多个分区的查询相比,访问单个分区中的数据的查询更具成本效益。 只允许针对单个逻辑分区中的项执行事务(在存储过程或触发器中)

      选择分区

      我们在使用Partition Key分区键时候,需要注意以下几点:

      1.单个逻辑分区的存储空间上限为 10GB

      2.对每个CosmosDB分区的最小吞吐量为每秒400个Request Unit (RU)。

      假设我们对CosmosDB分区的RU设置为500,但是真实的Request吞吐量超过500,则请求将因为RU不足而有限制。请务必选择不会导致应用程序中产生“热点”的分区键

      3.请合理选择Azure CosmosDB的分区键,以保证数据平均的分布。平衡数据查询和事务查询,以实现横向扩展

      4.我们在选择分区键的时候,尽量保证该分区键可以被作为过滤条件,以提高查询的效率。

      避免在所有分区下查询某一条数据,因为没有定义分区键查询效率会非常低下。

  • 相关阅读:
    利用腾讯云COS云对象存储定时远程备份网站
    怎么生成主机最快
    海量服务实践──手 Q 游戏春节红包项目设计与总结(下篇)
    零基础读懂视频播放器控制原理——ffplay播放器源代码分析
    海量服务实践──手 Q 游戏春节红包项目设计与总结(上篇)
    Express+Less+Gulp配置高效率开发环境
    告知你不为人知的UDP-疑难杂症和使用
    告知你不为人知的UDP-连接性和负载均衡
    国内首款 FPGA 云服务器,性能是通用 CPU 服务器 30 倍以上
    Nginx反向代理腾讯云COS的一个坑
  • 原文地址:https://www.cnblogs.com/threestone/p/10677118.html
Copyright © 2011-2022 走看看