PG 假如我们想像Hive那也创建动态分区是不能实现的。

        那么需要我们手动通过脚本来创建分区表,创建分区表必须要创建主表和分区表。

因此我们可以根据我们需求提前用脚本把分区表生成即可,也可以用触发器来实现。

主表:定义我们的一些约束,以及分区键,实质上不存储数据

分区表:主要是用来存储数据的。所有列及约束都跟随主表

注意:如果我们指定分区表不存在会报错,因此一定要提前创建好分区表,并且要数据不能有遗漏的分区键。

列分区表

就是我们指定数据库中字段的一列作为分区字段。

1.如下创建分区表的主表 关键字【partition by list】

create table fenqu(
id int,
date varchar
) partition by list(date)

2.创建分区表并指定主表:

create table fenqu_20210805 partition of fenqu for values in ('2021-08-05');
create table fenqu_20210806 partition of fenqu for values in ('2021-08-06');

3.插入数据

insert into fenqu values(1,'2021-08-05');
insert into fenqu values(2,'2021-08-05');
insert into fenqu values(3,'2021-08-05');
insert into fenqu values(4,'2021-08-05');
insert into fenqu values(5,'2021-08-06');
insert into fenqu values(6,'2021-08-06');
insert into fenqu values(7,'2021-08-06');
insert into fenqu values(8,'2021-08-06');

4.验证数据是否插入成功

我们插入的是主表,但是我们可以通过分表来查询。

        第一种如上用分区表的形式查询。

          

第二种 我们通过指定查询条件为我们的分区列

范围分区表

1.创建访问分区表的主表 关键字【partition by range】

create table fenqu2(
id int,
date varchar
) partition by range(date)

2.创建分区表并指定主表

create table fenqu_20210805_10 partition of fenqu2 for values from ('2021-08-05') to ('2021-08-10');
create table fenqu_20210810_15 partition of fenqu2 for values from ('2021-08-10') to ('2021-08-15');

注意:一定要他两个范围是左闭右开(包含左边,不包含右边)所以两个分区衔接一定要紧密。

3.插入数据

insert into fenqu2 values(1,'2021-08-05');
insert into fenqu2 values(2,'2021-08-06');
insert into fenqu2 values(3,'2021-08-07');
insert into fenqu2 values(4,'2021-08-09');
insert into fenqu2 values(5,'2021-08-10');
insert into fenqu2 values(6,'2021-08-11');
insert into fenqu2 values(7,'2021-08-12');
insert into fenqu2 values(8,'2021-08-13');
insert into fenqu2 values(9,'2021-08-14');
insert into fenqu2 values(10,'2021-08-15');

会报错如下错误:因为左闭右开,

4.验证数据是否正确

我们使用查询分区表的形式查询:

结果正确,数据已经进入到我们指定的分区。

其实最核心的使我们分区键的选择可以根据数据量来决定颗粒度,

一般我们数据量比较大的时候我们就按照天,小时(这种可以使用列分区表)。

数据量小我们可以按照季,月,周来实现分区(可以使用范围分区表)当然当我们列中有季,月,周也可以使用列分区

赠送内容:

我们再对PG进行更新插入时需要对标设置联合主键

ALTER TABLE log.voice_query_answer_log ADD CONSTRAINT
"voice_query_answer_log_pkey" PRIMARY KEY (log_date,log_timestamp,request_id,device_sn);

PostgreSQL 创建分区表相关推荐

  1. Postgresql-11 根据多字段创建分区表

    1.表分区的意义 随着系统的使用,业务表的数据会变得越来越庞大,当达到一定程度时,会严重影响系统性能,将表分区,可以很好的解决这个问题.分区表的优点包括: (1)大大提高查询性能:对表分区后,查询时会 ...

  2. postgresql的分区表

    postgresql的分区表 1.相关基本介绍: pg10.x以前只能通过继承+触发器的方式创建分区表 postgresql版本在10.x之后提供了内置分区表,只支持range和list分区,11.x ...

  3. SQL SERVER 性能优化四: 创建分区表

    1.整体介绍 1.1 分区表概念:分区表值得是逻辑上是一个表,物理上被存储到不同的磁盘文件中. 1.2 优势:提高查询性能:提高稳定性:便于管理:对于大数据量表备份更方便. 1.3 建立分区表主要包含 ...

  4. 分区表--SQLServer创建分区表

    分区表的定义大体上分为三个步骤: 1)定义分区函数 2)定义分区构架 3)定义分区表 4)修改分区表... ************* 以下为测试代码 ************* USE [maste ...

  5. postgresql创建只读账号

    postgresql创建只读账号: # su - postgres $ psql # \c icinga2; # create user aa with password 'xxx'; # grant ...

  6. oracle创建表分区表,oracle创建分区表

    这里的第一种方式创建分区表是最近更改程序时学会的,哈哈 -- 通过create table tablename as select * from tablename (指定分区) create tab ...

  7. 创建分区表+分区表的分类+创建散列分区表+查看散列分区表分区中的数据+创建列表分区表+查看列表分区表分区中的数据...

    创建分区表 分区表的分类 范围分区:对数据表的某个值的范围进行分区,需要使用partition by range字句. 散列分区: 1通过hash算法均匀分布数据的一种分区类型. 2通过在I/O设备上 ...

  8. 如何使用Data Lake Analytics创建分区表

    前言 Data Lake Analytics (后文简称DLA)提供了无服务化的大数据分析服务,帮助用户通过标准的SQL语句直接对存储在OSS.TableStore上的数据进行查询分析. 在关系型数据 ...

  9. Hive的基本操作-创建分区表

    分区表 在大数据中,最常用的一种思想就是分治,我们可以把大的文件切割划分成一个个的小的文件,这样每次操作一个小的文件就会很容易了,同样的道理,在hive当中也是支持这种思想的,就是我们可以把大的数据, ...

最新文章

  1. HornetQ之JMS2.0 (实例讲解)
  2. eureka 之前的服务如何关闭_干货分享 | 服务注册中心Spring Cloud Eureka部分源码分析...
  3. 银联分账与银联代付_第三方分账系统到底有哪些作用?
  4. Clumsy网络模拟工具
  5. open with code 报错没有项目_Python开发:解决Ubuntu安装tesserocr报错
  6. python staticmethod规范_Python Staticmethod可以调用另一个本地方法吗?
  7. SDUT-保留整数 -
  8. element-plus Radio 单选框点击失效 无法切换问题
  9. PhotoShop CS6破解方法及文件下载
  10. Python入门:数据结构之字典(dict)(1)
  11. 三维装箱算法matlab,三维装箱遗传算法matlab程序
  12. 佟年计算机大赛,佟年成电竞高手,老韩带老婆打比赛,solo内网被佟年轻松攻破...
  13. crate部署(crateDB)
  14. 阿里云OSS域名配置及简单上传
  15. ​包载紫杉醇的tpgs还原性白蛋白纳米粒/GA-HSA 藤黄酸人血清蛋白纳米粒​
  16. 苹果5s参数_这次,苹果自己革了自己的命---iPhone12发布会全纪实
  17. SpringBoot整合Redis实现缓存、队列、广播
  18. 九龙证券|三元锂离子电池和磷酸铁锂离子电池的特点和优劣势详解
  19. 高端阅读:李开复与唐骏之争(转)
  20. 篮球队编程题(Java)

热门文章

  1. 千米与英里转化的c语言程序,C ++程序将公里/小时转换为英里/小时,反之亦然...
  2. 2005年创新商业模式之窄告
  3. 今天的日子只属于你!
  4. HanLP极致简繁转换详细讲解 1
  5. 今天腊八,请组里的人到大成Party了,很开心啊!
  6. 关于ios审核被拒3.2.1问题已成功过审经验总结
  7. Ubuntu Linux 3D桌面完全教程(转贴)
  8. 【论文阅读】MLGCL:Multi-Level Graph Contrastive Learning
  9. 测试吃鸡游戏帧数软件,高频内存吃鸡、CSGO帧数提高多少?这一测试告诉你
  10. Windows10 蓝屏 DRIVER_IRQL_NOT_LESS_OR_EQUAL (vfilter.sys)的可能解决方法