本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

pg_partman_postgers Docker 镜像下载 - 轩辕镜像

pg_partman_postgers 镜像详细信息和使用指南

pg_partman_postgers 镜像标签列表和版本信息

pg_partman_postgers 镜像拉取命令和加速下载

pg_partman_postgers 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

pg_partman_postgers
layerxdocker/pg_partman_postgers

pg_partman_postgers 镜像详细信息

pg_partman_postgers 镜像标签列表

pg_partman_postgers 镜像使用说明

pg_partman_postgers 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

基于PostgreSQL的Docker镜像,预安装并配置pg_partman扩展,用于自动化表分区的创建、维护和管理,简化时间序列数据等场景的分区操作,提升数据库性能。
0 次下载activelayerxdocker镜像

pg_partman_postgers 镜像详细说明

pg_partman_postgers 使用指南

pg_partman_postgers 配置说明

pg_partman_postgers 官方文档

PostgreSQL with pg_partman 镜像文档

镜像概述

本镜像基于***PostgreSQL镜像构建,预集成并配置了pg_partman扩展。pg_partman是一个PostgreSQL扩展,用于简化和自动化表分区的创建、维护与管理流程,特别适用于时间序列数据或需要按范围分区的场景,帮助用户减少手动分区操作,提升数据库性能和可维护性。

核心功能和特性

  • 预安装pg_partman扩展:基于***PostgreSQL镜像,无需手动安装,开箱即可使用pg_partman功能。
  • 自动化分区管理:支持自动创建新分区(基于时间或数值范围)和自动清理旧分区,减少人工干预。
  • 多分区类型支持:兼容PostgreSQL原生分区功能,支持时间范围分区(如按天、月)和数值范围分区(如按ID范围)。
  • 灵活的分区策略:可配置分区间隔(如1小时、1个月)、保留策略(如保留最近3个月数据)、分区命名规则等。
  • 性能优化:通过分区减少单表数据量,提升查询效率,尤其适用于大数据量表的查询和维护。
  • 与PostgreSQL版本兼容:支持主流PostgreSQL版本(如12+),兼容原生分区语法和功能。

使用场景和适用范围

  • 时间序列数据存储:适用于监控指标、日志数据、传感器数据等按时间增长的海量数据场景。
  • 高性能查询需求:当数据库表数据量达到百万/千万级以上,需通过分区提升查询速度和索引效率。
  • 自动化运维场景:减少DBA手动创建/删除分区的操作成本,尤其适合需要定期维护分区的业务。
  • 合规性数据保留:需按要求自动保留指定时间段数据(如交易记录保留5年)的场景。

使用方法和配置说明

1. 镜像拉取

假设镜像已构建并推送到私有仓库或Docker Hub(实际使用时替换<image-name>为具体镜像名称):

bash
docker pull <image-name>:<tag>  # 示例:docker pull my-postgres-pgpartman:14

2. 环境变量配置

环境变量说明默认值
POSTGRES_DB初始化数据库名称postgres
POSTGRES_USER数据库管理员用户名postgres
POSTGRES_PASSWORD数据库管理员密码(必填)-
PGPARTMAN_PARTITION_TYPE分区类型:time(时间范围分区)或range(数值范围分区)time
PGPARTMAN_INTERVAL分区间隔(时间分区支持1min/1h/1d/1mon等;数值分区为整数)1d(按天分区)
PGPARTMAN_RETENTION数据保留策略(保留最近N个分区,0表示不自动删除)30(保留30个分区)
PGPARTMAN_SCHEMApg_partman元数据存储 schemapartman

3. Docker 部署示例

3.1 基础 docker run 命令

bash
docker run -d \
  --name postgres-pgpartman \
  -p 5432:5432 \
  -e POSTGRES_DB=myappdb \
  -e POSTGRES_USER=myuser \
  -e POSTGRES_PASSWORD=SecurePass123! \
  -e PGPARTMAN_PARTITION_TYPE=time \
  -e PGPARTMAN_INTERVAL=1d \
  -e PGPARTMAN_RETENTION=90 \
  -v postgres-data:/var/lib/postgresql/data \
  <image-name>:<tag>

3.2 Docker Compose 配置示例

yaml
version: '3.8'
services:
  postgres:
    image: <image-name>:<tag>
    container_name: postgres-pgpartman
    ports:
      - "5432:5432"
    environment:
      POSTGRES_DB: "metrics_db"
      POSTGRES_USER: "metrics_user"
      POSTGRES_PASSWORD: "MetricsPass456!"
      PGPARTMAN_PARTITION_TYPE: "time"
      PGPARTMAN_INTERVAL: "1h"  # 按小时分区
      PGPARTMAN_RETENTION: "720"  # 保留30天(720小时)数据
    volumes:
      - postgres-data:/var/lib/postgresql/data
    restart: unless-stopped

volumes:
  postgres-data:

4. 初始化分区表

容器启动后,需手动或通过初始化脚本创建分区表(以下为示例SQL,通过psql执行):

sql
-- 1. 切换到目标数据库
\c metrics_db

-- 2. 创建主表(需与pg_partman分区策略匹配)
CREATE TABLE metrics (
  time timestamp NOT NULL,
  metric_name text NOT NULL,
  value numeric NOT NULL
);

-- 3. 使用pg_partman创建分区(假设按time字段小时分区)
SELECT partman.create_parent(
  p_parent_table := 'public.metrics',
  p_control := 'time',  -- 分区控制字段
  p_type := 'time',     -- 分区类型(与环境变量一致)
  p_interval := '1 hour',  -- 分区间隔(与环境变量一致)
  p_retention := '720 hours'  -- 保留策略(与环境变量一致)
);

5. 验证分区配置

sql
-- 查看分区表结构
SELECT * FROM partman.show_partitions('public.metrics');

-- 查看pg_partman配置
SELECT * FROM partman.partition_config WHERE parent_table = 'public.metrics';

注意事项

  • 数据备份:分区表数据仍需通过PostgreSQL标准工具(如pg_dump)定期备份,避免数据丢失。
  • 版本兼容性:确保pg_partman版本与PostgreSQL版本匹配(参考pg_partman***文档)。
  • 性能监控:分区操作(如自动创建/删除)可能影响数据库性能,建议在低峰期执行或调整pg_cron调度(如需定时任务)。
  • 权限管理:确保应用用户具有分区表的读写权限,以及对partman schema的访问权限。

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker加速体验非常流畅,大镜像也能快速完成下载。"