Greenplum 分割槽表介紹

2021-08-09 09:42:09 字數 2191 閱讀 8722

greenplum 分割槽表

greenplum分割槽表的原理和postgresql的原理相同,都是把一張大表進行按照適合的維度進行分割,通過表的繼承,規則,約束實現的。

在greenplum中,乙個表是否分割槽表儲存在pg_partition中.

gp在建表的時候會有乙個distributed by選項,這個是表進行物理拆分,理解一下分割槽和分布:

1.分割槽,按照字段邏輯進行邏輯劃分的區域,比如,時間按天,按月等等

2.分布,按照字段進行物理分割槽,會分散到每個segment

分布式為了並行查詢效率,充分利用每個segment節點的資源,分割槽是為了減少查詢時的資料掃瞄,對大表維護更加方便。

支援的分割槽型別:

範圍分割槽

列表分割槽

組合分割槽

例項:create table test_partition (id int,*** varchar(1)) 

distributed  by (id) 

partition by  list(***)

(partition man  values ('m'),

partition woman values ('w'),

default partition other);

notice:  create table will create partition "test_partition_1_prt_man" for table "test_partition"

notice:  create table will create partition "test_partition_1_prt_woman" for table "test_partition"

notice:  create table will create partition "test_partition_1_prt_other" for table "test_partition"

insert into test_partition values(1,'m');

insert into test_partition values(2,'m'); 

insert into test_partition values(3,'m'); 

insert into test_partition values(4,'w');

insert into test_partition values(5,'w'); 

insert into test_partition values(6,'w'); 

insert into test_partition values(7,'w'); 

insert into test_partition values(8,'o');

insert into test_partition values(9,'o');  

select gp_segment_id,count(*) from test_partition group  by 1; 

gp_segment_id | count 

---------------+-------

8 |     1

62 |     1

47 |     1

57 |     1

52 |     1

13 |     1

3 |     1

42 |     1

18 |     1

可見分布在不同的segment

檢視分割槽:

gpadmin=# select * from test_partition_1_prt_man;

id | *** 

----+-----

1 | m

2 | m

3 | m

(3 rows)

gpadmin=# select * from test_partition_1_prt_woman;

id | *** 

----+-----

7 | w

4 | w

5 | w

6 | w

(4 rows)

gpadmin=# select * from test_partition_1_prt_other;

id | *** 

----+-----

8 | o

9 | o

(2 rows)

參考:可見分割槽表儲存了相關分割槽的記錄

分割槽表介紹

通常情況下,我們建立的表都是未分割槽的表,或者說,只有乙個分割槽的表,資料只能儲存在乙個檔案組 file group 中,預設情況下,表資料儲存在primary檔案組。對錶進行分割槽後,每乙個分割槽都獨立儲存在檔案組 file group 中。把錶分割槽,實際上是把邏輯上完整的表,按照特定的字段拆分...

greenplum分割槽表檢視所佔空間大小

在使用greenplum資料庫的時候,有的時候想要檢視表所占用空間的大小,會使用如下二個函式pg relation size和pg size pretty.前者用來檢視資料大小,後者是human readable的調整.方法如下 select pg size pretty pg relation s...

把非分割槽表改為分割槽表

把非分割槽表改為分割槽表 說明 把非分割槽表改為分割槽表適用於歷史表 1 建立分割槽表 結構和非分割槽表tbl stock balance log相同 createtabletbl stock balance log part1 account id varchar2 20 byte occur d...