如何降低PostgreSQL数据仓库的磁盘使用率?

1、问题:PG数仓在运行过程中,如果磁盘使用率接近或超过75%,可能会触发只读模式,导致业务中断,为了避免这种情况,需要对集群进行节点扩容或磁盘扩容。

2、场景分类

如何降低PostgreSQL数据仓库的磁盘使用率?插图1
(图片来源网络,侵删)

云数仓+SSD云盘:对于云数仓+SSD云盘,当无脏页率较高的表且磁盘使用率已接近或超过75%时,应参考以下数仓类型进行集群扩容或磁盘扩容,标准数仓、实时数仓可参考磁盘扩容进行操作;旧的标准数仓(不支持磁盘扩容)则需联系技术支持进行在线扩容。

磁盘倾斜:对于DWS_002000006节点数据盘使用超阈值的情况,清理倾斜表是解决方式之一,如果确认SQL无回显结果,说明没有脏页率较高的表,可根据以下标准判断数据盘中最高和最低使用率是否相差超过10%,如果是,则进行相应的处理。

3、技术细节

系统表:PG_AM系统表存储了有关索引访问方法的信息,包括访问方法和操作符策略等。

磁盘管理:ADB PG基于Greenplum内核修改,其磁盘管理的关键技术点包括业务数据分布在Segment节点、有Primary和Mirror节点、MVCC机制导致的垃圾数据、复制表存储相同的数据拷贝以及Append Only类型的表支持压缩存储等。

如何降低PostgreSQL数据仓库的磁盘使用率?插图3
(图片来源网络,侵删)

数据库管控:ADB PG的磁盘预留机制和“锁定写”保护机制是保障磁盘在安全水位下运行的重要设计。

4、优化方案

表的存储格式及压缩:通过选择合适的存储格式和压缩算法,可以有效节约存储空间。

冷热数据分离:从业务上尽量缩减在ADB中的存量数据,预估热数据量并进行迁移。

PG数仓磁盘使用率高的问题可以通过扩容、清理倾斜表、优化表的存储格式及压缩、冷热数据分离等方法来解决,了解相关的技术细节和系统表信息也是必要的。

如何降低PostgreSQL数据仓库的磁盘使用率?插图5
(图片来源网络,侵删)

小伙伴们,上文介绍pg 数仓_磁盘使用率高的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/78590.html

小末小末
上一篇 2024年10月17日 08:21
下一篇 2024年10月17日 08:32

相关推荐