>  기사  >  데이터 베이스  >  GreenPlum改变表的分布策略

GreenPlum改变表的分布策略

WBOY
WBOY원래의
2016-06-07 15:23:161918검색

创建一张表,在没有primary key 或者 unique key 的情况下,GreenPlum默认会把第一个column作为分布键 zwcdb=# create table tab01(id int,name varchar(20));NOTICE: Table doesnt have DISTRIBUTED BY clause -- Using column named id as the Greenplum Da

创建一张表,在没有primary key 或者 unique key 的情况下,GreenPlum默认会把第一个column作为分布键

zwcdb=# create table tab01(id int,name varchar(20));
NOTICE:  Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'id' as the Greenplum Database data distribution key for this table.
HINT:  The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew.
CREATE TABLE
zwcdb=# 
zwcdb=# \d+ tab01
                        Table "public.tab01"
 Column |         Type          | Modifiers | Storage  | Description 
--------+-----------------------+-----------+----------+-------------
 id     | integer               |           | plain    | 
 name   | character varying(20) |           | extended | 
Has OIDs: no
Distributed by: (id)
使用以下语句修改分布键
zwcdb=# alter table tab01 set distributed by(name);
ALTER TABLE
zwcdb=# \d+ tab01
                        Table "public.tab01"
 Column |         Type          | Modifiers | Storage  | Description 
--------+-----------------------+-----------+----------+-------------
 id     | integer               |           | plain    | 
 name   | character varying(20) |           | extended | 
Has OIDs: no
Distributed by: (name)
在不确定哪个column为分布键的情况下可以使用randomly策略
zwcdb=# alter table tab01 set distributed randomly;
ALTER TABLE
zwcdb=# alter table tab01 set with(reorganize=true);
ALTER TABLE
zwcdb=# \d+ tab01
                        Table "public.tab01"
 Column |         Type          | Modifiers | Storage  | Description 
--------+-----------------------+-----------+----------+-------------
 id     | integer               |           | plain    | 
 name   | character varying(20) |           | extended | 
Has OIDs: no
Distributed randomly
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.