关于表组的分区规则一致是指什么?

这里的分区规则一致指的是什么意思?
是分区策略一致?hash、range 一致?
还是分区策略+列一致?hash(c1) 、hash(c2)?
还是必须要分区策略+列+分区数一致?paratition 8

1 个赞

这个我也不清楚,请高手指点

3个维度

  1. 分区类型 比如hash 都的是hash
  2. 分区数 ,必须都一样
  3. 因为还有二级分区的原因, 一级分区的和二级分区兼容。 二级分区表的一级分区和一级分区表一样

V3版本:
表组的分区方式、Locality、Primary Zone 必须和组内的表完全一致。

  • 相同的 Locality:指副本类型、个数、位置要完全一致。
  • 相同的 Primary zone:指 Leader 位置及其优先级要完全一致。
  • 相同的分区方式:
    • 分区类型相同(例如,都是 HASH+RANGE 分区)。
    • 如果是 KEY 分区,要求引用的列数相同,且分区个数相同。
    • 如果是 HASH 分区,要求分区个数相同。
    • 如果是 RANGE COLUMNS 分区,要求引用的列数相同,且分区数相同,且 RANGE 分割点相同。
    • 如果是 RANGE 分区,且分区数相同,且 RANGE 分割点相同。对于二级分区,根据分区类型,要求与上面一致。

从V4.2版本开始,表组没有了分区概念,只需要定义SHARDING属性,就可以很灵活的将不同分区方式的表加入,如果想要限制别的表加入表组,可以修改表组的SHARDING属性。表组的SHARDING属性,取值如下:
 NONE:对加入表组的表没有限制,此类表组内的所有表的所有分区均聚集在同一台机器上,并且不限制表组内表的分区类型。
 PARTITION:要求加入表组的所有表其对应的一级分区必须与表组中所有表的一级分区的分区定义一致,包括分区类型、分区个数、分区值。表组内每一张表的数据按一级分区打散,如果是二级分区表,则一级分区下的所有二级分区聚集在一起,也只校验一级分区的分区定义。因此,一级分区表和二级分区表可以同时存在,只要这些表的一级分区的分区定义相同即可。
 ADAPTIVE:ADAPTIVE为默认值。要求表组内的表全部是一级分区表或者全部是二级分区表。如果是一级分区表,则要求一级分区的分区定义相同;如果是二级分区表,则要求一级分区和二级分区的分区定义都相同。如果表组内的表全部是一级分区表,则一级分区值相同的分区聚集在一起;如果表组内的表全部是二级分区表,则一级分区值和二级分区值均相同的分区聚集在一起。