您的位置:首页 > 大数据 > 云计算

Azure Table深入理解

2016-05-04 14:14 561 查看
> 1、同一个Table中的相同Partition Key是否存在同一个文件中?

Azure Table为如下所示的三层结构。Stream层是最终数据存放的位置,Partition层对Stream层的数据进行分区(Partition)管理。



在Stream层,数据以Extent为单位进行复制。每个Extent由Block组成,单个Extent和Block的大小均有上限。一个Stream为一组指向Extent的指针,当一个Extent写满之后,会新建一个Extent继续写数据。在Partition层,同个Table中相同PartitionKey的元素表现为一个Partition,存在一个Stream中。



在Stream层写入时,数据会同时写入一个主EN(Extent Node)和两个副EN;读取时,会根据情况选择主副EN中的一个进行负载均衡。



在Partition层,Partition Server(PS)管理一组RangePartition,一个RangePartion内可能会有多个Partition。如果某个RangePartition繁忙,Partition
Manager(PM)会把该RangePartition内的Partition进行分割,交给空闲的PS管理。反之对于访问量低的RangePartition会进行合并。这种分割和合并其实仅改变Stream中的指针,对Extent不做任何操作,所以速度很快。除了永久存储(Stream层),经常使用的数据也会保存在Partition层的Cache中以提高速度。



 

> 2、同一个存储账号的不同Table可否并行查询?查询时相互是否有影响?

同个存储账号的不同Table可以并行查询,并行查询会按查询内容占用相应PS和EN的资源,不会有其他影响。

 

> 3、同一个Table中,若一个查询涉及到了多个PartitionKey,底层是否会帮忙并行查询,然后将结果整合后统一返回?

当一个查询涉及多个PartitionKey时,各个PartitionKey的请求会交给相应PS处理,结果会一起返回给前端。

转载请注明:康瑞部落 » Azure
Table深入理解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  云计算 azure