Understanding Cubert Concepts(二):Cubert Co-Partitioned Blocks
话接上文Cubert PartitionedBlocks,我们介绍了Cubert的核心Block概念之一的分区块,它是一种根据partitionKeys
和cost function
来对原始数据进行Redistribution
和Transformation
来结构化数据,这种结构化的数据是对后续join和cube计算是非常有利的。
好了,本文将着重讲Cubert Block中的另一种Block,Co-PartitionedBlock.
Co-partitioned Blocks
让我们来看下另一种创建blocks的方式:
这种方式就是,依靠一个dataset的index
来创建``另一个dataset的blocks
.
比如:
有一个dataset P 是通过上文Cubert PartitionedBlocks的BLOCKGEN
方式生成的。这个dataset P 的内部会将partitionKeys的全局的range
划分为sub-ranges
,使得每个sub-range的key范围对应了一个block.(Ps:就是定范围的rangeKeys的数据在一个block内)
举个例子:
- BLOCKGEN For DataSet P (
PartitionedBlocks
)
比如我们对dataset P的parititionKey
指定为memberId,那么BLOCKGEN
过程后,会生成类似如下的索引:
memberIds from 0 to 1000 => block 0
memberIds from 1001 to