分布式的关联有两种方式:单库关联和跨库关联
单库关联指的是关联健和分布键一样,直接关联就行,不需要数据迁移
跨库关联指的是关联键和分布健不一样,数据得先重分布后再进行单库关联,跨库关联有两个办法,例如inner join时,#select * from A,B where A.id=B.id' 其中A的关联键是分布键但是B的关联键不是分布键:
1 :将B按照id'字段将数据重分布到每个节点,再和A关联
2 :将A广播,每个节点都放一份A的全量数据,再去和B关联
得根据具体的数据量选择哪种关联
关于关联的理解,做几点补充:
1 关联键和两张表的分布健三键统一时,两张表关联的行在一个segment,直接就可以关联,此时性能最佳。
2 关联键只和其中一张表的分布键一样,两张表关联的行不在一个数据库,关联不了,只能要么让另一张表按照关联字段重分布,要么让他在每个segment上都广播每个segment上都复制一份全量数据。
3 关联键和两张表中的分布键三者都不同,要不让两张表都按照关联字段重分布redistribute motion,要不就让其中一张表按照关联字段广播broadcast Motion。