暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Pg-partman -- 表分区自动管理工具

程序员的自留地 2021-04-20
2514

概述

用于维护表分区的一个自动化工具,只需要指定规则就可以自动实现,创建分区表、按规则拆分并转移数据,对不合规数据的异常处理、历史数据转移等功能。可以保留父表所有的索引、表空间和约束,包括主键、外键、唯一键等,修复了之前表分区唯一键只对各子表有效,可能全局重复的bug。新建的子表拥有当时父表相同的权限。支持unlogged table。

有自动化组件管理历史数据,可以选择将历史分区数据移入其他schema,然后解除表继承等关系,比较温和的政策是仅解除与父表的关系并删除子分区所有的索引,但是保留分区的数据;比较严厉的做法是直接drop掉整个子分区。所有的保存策略均可配置并写入partman的配置表中

是pg的标准扩展,整个逻辑是用plsql写的存储过程。搭配了部分用于批处理的python脚本


安装

非常标准化的安装,下载源码,make&make install,使用时在目标数据库执行create extension即可


工作原理

pg_partman支持两种方式分表,按时间分或按整型数值序列分表。

按时间分表又分为标准化时间间隔,即年、月、日、周等间隔分表以及按用户自定义时间间隔分表。初始化是,如果指定的时间间隔大于一分钟小于24小时,则第一个表分区是四舍五入后最近的小时,如果间隔小于1分钟,在第一个分区是四舍五入后最近的分钟。

按整数分表支持按照固定间隔切分

支持约束排他,详见CONSTRAINT-EXCLUSION

命名限制:遵循pg最长63字符的命名限制。如果超长的话,pg_partman自动对父表的表名进行截断以缩短子表前缀的长度


文章转载自程序员的自留地,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论