探索BI系统搭建的必要性与AI技术的应用潜力
1449
2022-05-29
一、什么是分区表
GaussDB(DWS)数据库支持的分区表为范围分区表。范围分区表即为将数据基于范围映射到每一个分区,这个范围是由创建分区表时指定的分区键决定的。这种分区方式是最为常用的,并且分区键经常采用日期,例如将销售数据按照月份进行分区。同时普通表无法转换为分区表,只能通过创建新的分区表将普通表中的数据导入到分区表中。所以需要根据业务提前规划是否使用分区表。
二、分区表的优势
分区表相比较普通表的优势十分显著,主要包括一些几个方面。
改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,很大程度上提高检索效率。
增强可用性:如果分区表的某个分区出现故障,表在其他分区的数据仍然可用。
方便维护:如果分区表的某个分区出现故障,需要修复数据,只修复该分区即可。
均衡I/O:可以把不同的分区映射到不同的磁盘以平衡I/O,改善整个系统性能。
三、分区表操作
CREATE TABLE staffS_p1
(
staff_ID NUMBER(6) not null,
FIRST_NAME VARCHAR2(20),
LAST_NAME VARCHAR2(25),
EMAIL VARCHAR2(25),
PHONE_NUMBER VARCHAR2(20),
HIRE_DATE DATE,
employment_ID VARCHAR2(10),
SALARY NUMBER(8,2),
COMMISSION_PCT NUMBER(4,2),
MANAGER_ID NUMBER(6),
section_ID NUMBER(4)
)
PARTITION BY RANGE (HIRE_DATE)
(
PARTITION HIRE_19950501 VALUES LESS THAN ('1995-05-01 00:00:00'),
PARTITION HIRE_19950502 VALUES LESS THAN ('1995-05-02 00:00:00'),
PARTITION HIRE_maxvalue VALUES LESS THAN (MAXVALUE)
);
该表是一个典型的分区表,以时间作为分区键。
分区表和普通表一样支持增删改查,在该基础上可以对单个分区进行查询。
Select * from staffS_p1 partition HIRE_19950502;
即可查询staffS_p1表上HIRE_19950502分区里的所有数据。
alter语法可以删除分区,同时也包括分区里的所有数据。
alter table drop partition
同时有split语法可以将一个分区分割为多个分区
alter table staffS_p1 split partition HIRE_maxvalue at('1995-05-03 00:00:00')into(partition HIRE_19950503,partition HIRE_maxvalue1);
将原来的HIRE_maxvalue分区以1995-05-03 00:00:00为切割点分割成两部分。
既然可以将一个分区分割为多个分区,就意味着也可以将多个分区合并成一个分区,通过merge into语法即可实现。
Alter table staffS_p1 merge partitions HIRE_19950501,HIRE_19950502 into partition HIRE_19950502;
将HIRE_19950501,HIRE_19950502两个分区合并成HIRE_19950502一个分区。
alter table staffS_p1 exchange partition (HIRE_19950502) with table normal_tbl;
exchange语法可以将普通表和分区表进行交换,但exchange对普通表要求比较高,有如下一些条件:
普通表和分区的列数目相同,对应列的信息严格一致,包括:列名、列的数据类型、列约束、列的Collation信息、列的存储参数、列的压缩信息等。
普通表和分区的表压缩信息严格一致。
普通表和分区的分布列信息严格一致。
普通表和分区的索引个数相同,且对应索引的信息严格一致。
普通表和分区的表约束个数相同,且对应表约束的信息严格一致。
普通表不可以是临时表和unlogged表。
交换分区的普通表和分区表必须在同一个逻辑集群或节点组(NodeGroup)中。
完成交换后,普通表和分区的数据被置换,同时普通表和分区的表空间信息被置换。此时,普通表和分区的统计信息变得不可靠,需要对普通表和分区重新执行analyze。同时需要注意的是,需要进行exchange的表的表结构在创建时就必须匹配,如果执行了ddl操作,则无法进行exchange。
以上一些分区表的语法很大程度上提高了分区表的可用性与灵活性,加强了分区表的功能,方便了用户使用。
想了解GuassDB(DWS)更多信息,欢迎微信搜索“GaussDB DWS”关注微信公众号,和您分享最新最全的PB级数仓黑科技,后台还可获取众多学习资料哦~
EI企业智能 Gauss AP 数据仓库服务 GaussDB(DWS)
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。