GBASE中如何实现insert-select将源表数据随机平均分布插入到目标表
妞果 2021-03-26 11:59:48 使用过GBASE-8A的同学应该都大概知道GBASE表的分布态,有时候由于表的分布不均会造成数据倾斜而影响性能,
直接进行随机表转储时会依照源表的分布情况一致,那么如何强制随机分布转储呢?
使用如下方式,首先gccli连接进入时加参数c,同时SQL中加hint控制。
eg:
gccli -ugbase -pxxxxx -c
gbase> insert into 目标表 select * from (select /*+grouped('-1')*/ * from 源表) t;
另,关于随机表的数据插入有一个参数控制,如下:
gcluster_random_insert
用于控制随机分布表 在执行 insert value时,发起的集群节点上存在单机 时,数据分布到单机的原则。
0:insert value数据都落在和发起集群节点相同的单机上;
1:insert value进入的每条数据,采用random()%分片数 原则,随机 落在任意单机 节点 。