Greenplum -- 最全分区表操作
发表于:2025-02-12 作者:千家信息网编辑
千家信息网最后更新 2025年02月12日,一、Greenplum 分区原理分区表意思是将一个大表在物理上分割成几块,GPDB中的分区表和PostgreSQL中实现原理一样,都是用过表继承、约束来实现。但是与PostgreSQL也有所不同,在P
千家信息网最后更新 2025年02月12日Greenplum -- 最全分区表操作
一、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 则是包含'2017-01-01' exclusive : 指定不包含, 例如上面的 end ('2017-01-31') exclusive 则是不包含'2017-01-31'
2.2、快速分区(every)
根据选定的范围,跨越基数,快速分区每一个子表
eg:create table test_partition_every_1 ( id int, name varchar(64), fdate date) distributed by (id) partition by range (fdate) ( partition pn_ start ('2017-01-01'::date) end ('2017-12-31'::date) every ('1 day'::interval), default partition default_p);every:指定跨越基数
2.3、list分区(list)
根据值的分组,相同的数据归类到一组,也就一个分区中
eg:create table test_partition_list ( id int, name varchar(64), fdate varchar(10)) distributed by (id) partition by list (fdate) ( partition p1 values ('2017-01-01', '2017-01-02'), partition p2 values ('2017-01-03'), default partition pd);
三、分区相关操作
3.1、分区split
切割普通分区:
将分区p2 在 '2017-02-20' 左右切分成两块 alter table test_partition_range split partition p2 at ('2017-02-20') into (partition p2, partition p3); 切割默认分区:alter table test_partition_range split default partition start ('2017-03-01') end ('2017-03-31') into (partition p4, default partition);
3.2、分区add
如果存在default partition,则不能add分区,只能split default partition
alter table test_partition_range_1 add partition p2 start ('2017-02-01') end ('2017-02-31');
3.3、分区drop
彻底删除对应的分区表
alter table test_partition_range_1 DROP partition p2;
3.4、分区truncate
清空分区表数据,相当于删除分区,然后再新建一个
alter table test_partition_range_1 truncate partition p1;
四、子分区创建与操作
4.1、子分区创建
在GPDB中,分区是可以嵌套增加的,分区下面可以有子分区
create table test_partition_range_2 ( id int, name varchar(64), fdate varchar(10)) distributed by (id) partition by range(fdate) subpartition by list(name) subpartition template( subpartition c1 values ('xiaoxiao'), subpartition c2 values ('xiaohua'))( partition p1 start ('2017-01-01') end ('2017-01-31'))上面的分区中,p1会再分两个c1/c2子分区
4.2、truncate 子分区
alter table test_partition_range_2 alter partition p1 truncate partition c2;
4.3、drop 子分区
alter table test_partition_range_2 alter partition p1 drop partition c2;
分区表
数据
范围
面的
个子
原理
基数
不同
普通
相同
两个
动向
区间
多个
字段
就是
意思
手动
有所不同
物理
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
投标文件软件开发技术要求
上海新时代网络技术
年度网络安全工作会议
安徽省联通网络技术岗
京东数据库技术部
腾讯工作的软件开发
数据库mdf如何附加
数据库授权角色
按键精灵手机版对接云数据库插件
宣城市网络安全保卫支队
拼多多三级分销软件开发
网络安全危险信息共享平台
网络技术解读
网络安全杀毒软件有哪些
工行服务器安全证书
数据库教学视频哪个好
我的世界服务器水门
和谐网络安全组
张家港市网络安全与信息化
去哪里可以找到软件开发人员
循环读取数据库数据问题
服务器运行情况检测
东芝注塑机数据库
无线网络技术讲解
tde数据库加密安全吗
我的世界不封号的服务器
H5怎么显示数据库数据列表
神奇宝贝服务器精灵
时间源服务器
cf匹配服务器怎么中途加入