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.我们在选择分区键的时候,尽量保证该分区键可以被作为过滤条件,以提高查询的效率。

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

  • 相关阅读:
    Kafka usecase
    kafka 的quick start(windows平台)
    kafka介绍
    问题记录 为ubuntu16.04添加windows字体(解决JIRA图表乱码的问题)
    问题记录,如何解决confluence的office预览的时候的乱码问题
    为gitlab10.x增加使用remote_user HTTP头的方式登录
    基于spring-cloud的微服务(4)API网关zuul
    基于spring-cloud的微服务(3)eureka的客户端如何使用IP地址来进行注册
    基于spring-cloud的微服务(2) eureka服务提供方的注册和消费方的消费
    WebView 上传文件 WebChromeClient之openFileChooser函数
  • 原文地址:https://www.cnblogs.com/threestone/p/10677118.html
Copyright © 2011-2022 走看看