如果DISTRIBUTEBY 后面是REPLICATION,则是复制模式,其余则是分片模式,HASH指的是按照指定列的哈希值分布数据,MODULO指的是按照指定列的取摩运算分布数据,ROUNDROBIN指的是按照轮询的方式分布数据。TO NODE指定了数据分布的节点范围,如果没有指定则默认所有数据节点参与数据分布。如果没有指定分布模式,即使用普通的CREATE TABLE语句,PGXL会默认采用复制模式将数据复制到所有数据节点。
通过协调节点操作:
psql -h pgxlnode1 -p 20004
CREATE TABLE test(idint primary key, name varchar(10)) DISTRIBUTE BY HASH(id) TO NODE(datanode1,datanode2);
insert into testselect generate_series(1,1000),'lottu'||generate_series(1,1000);
postgres=#select count(*) from test;
count
-------
1000
(1 row)
通过数据节点操作: