《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X分区管理(2) https://developer.aliyun.com/article/1228631?groupCode=polardbforpg
查看当前库中有哪些表组,结果显示如上图。
更改为详情模式查看,结果如上图。显示test_tg1一共有三个表,分区方式为partition by key,分区键为int型,有5个分区,并且展示了各个分区的哈希空间情况。
通过show topology 查看t1表的各个分区保存在哪个存储节点。结果如上图,有5个分区,p3、P5保存在0号节点,p2、P4保存在1号节点。
查看当前有哪些存储节点。结果显示当前集群有两个DN 节点,分别为0号与1号;另外还有一个GMS节点,不提供用户数据的存储,只提供元数据的管理。
针对表组的变更,我们提供了表组级别的分区变更能力和表级别的分区变更能力。表组的变更意味着一个表组内所有表同步进行变更。表级别的变更更灵活,可以对指定表的分区进行变更。
表组的变更是同步的变更,变更前可以做关联查询并下推的表,变更后依然可以。
而表级别的变更提供粒度更小、更灵活的管理能力。比如,T1、T2变更前都在表组1,因此可以做关联查询并下推;T1变更后到表组2,T2变更后在表组3,会导致关联查询无法下推。
表t1、t2、t3都在test_tg1中,在做分区合并前,先查看它们之间的关联查询能否下推。
t1和t2关联查询的条件为t1.a=t2.a,下推到GMS,最终会根据5个分区的每个分区做inner join下推,然后将 join 之后的结果拉上来再做聚合,可减少在CN节点上的大量运算。
从上图结果看一看出,t1与t2、t1与t3都可以进行关联查询并下推执行。
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X分区管理(4) https://developer.aliyun.com/article/1228629?groupCode=polardbforpg