一、Greenplum 分区原理
分区表意思是将一个大表在物理上分割成几块,GPDB中的分区表和PostgreSQL中实现原理一样,都是用过表继承、约束来实现。但是与PostgreSQL也有所不同,在PostgreSQL中,一个父表,多个子表来实现分区表,需要手动向子表插入数据,如果向父表插入数据,则直接会被插入到父表中,在GPDB中,可以直接想父表插入数据,便可以根据约束直接自动向对应的子表插入数据,当分区子表不存在时,插入失败
二、分区表创建
2.1、范围分区(range)
根据分区字段的值范围区间来分区,每一个分区就是一个子表
eg:
create table test_partition_range
(
id int,
name varchar(64),
fdate varchar(64)
) distributed by (id)
partition by range(fdate)
(
partition p1 start ('2017-01-01') inclusive end ('2017-01-31') exclusive,
partition p2 start ('2017-02-01') inclusive end ('2017-02-29') exclusive,
default partition default_p
);
inclusive :指定包含,例如上面的 start ('2017-01-01') inclusive 则是包含'2