同类对比

本文列出了与 Pigsty 生态位有重叠的产品与项目,并比较其在特性上的差异。

与 RDS 对比

Pigsty 是使用 AGPLv3 开源的本地优先 RDS 替代,可以部署在您自己的物理机/虚拟机上,也可以部署在云服务器上。

因此,我们选择了全球份额第一的亚马逊云 AWS RDS for PostgreSQL,以及中国市场份额第一的阿里云 RDS for PostgreSQL 作为参照对象。

阿里云 RDS 与 AWS RDS 均为闭源云数据库服务,通过租赁模式,仅在公有云上对外提供,以下对比基于最新的 PostgreSQL 16 主干版本进行,对比截止日期为 2024 年 2 月份。


功能特性

指标PigstyAliyun RDSAWS RDS
大版本支持13 - 1813 - 1813 - 18
只读从库 支持任意数量只读从库 备实例不对用户开放 备实例不对用户开放
读写分离 支持端口区分读写流量 独立收费组件 独立收费组件
快慢分离 支持离线 ETL 实例 未见相关特性 未见相关特性
异地灾备 支持备份集群 支持多可用区部署 支持多可用区部署
延迟从库 支持延迟实例 未见相关特性 未见相关特性
负载均衡 HAProxy / LVS 独立收费组件 独立收费组件
连接池 Pgbouncer 独立收费组件:RDS 独立收费组件:RDS Proxy
高可用 Patroni / etcd 需高可用版提供支持 需高可用版提供支持
时间点恢复 pgBackRest / MinIO 提供备份支持 提供备份支持
指标监控 Prometheus / Exporter 免费基础版/收费进阶版 免费基础版/收费进阶版
日志采集 Loki / Promtail 基础支持 基础支持
可视化系统 Grafana / Echarts 提供基本监控 提供基本监控
告警聚合通知 AlterManager 基础支持 基础支持

重要扩展

这里列出了一些重要扩展,对比基于最新的 PostgreSQL 16 主干版本进行,截止至 2024-02-28

扩展名称Pigsty RDS / PGDG 官方仓库阿里云 RDSAWS RDS
加装扩展 自由加装 不允许 不允许
地理空间 PostGIS 3.4.2 PostGIS 3.3.4 / Ganos 6.1 PostGIS 3.4.1
雷达点云 PG PointCloud 1.2.5 Ganos PointCloud 6.1
向量嵌入 PGVector 0.6.1 / Svector 0.5.6 pase 0.0.1 PGVector 0.6
机器学习 PostgresML 2.8.1
时序扩展 TimescaleDB 2.14.2
水平分布式 Citus 12.1
列存扩展 Hydra 1.1.1
全文检索 pg_bm25 0.5.6
图数据库 Apache AGE 1.5.0
GraphQL PG GraphQL 1.5.0
OLAP pg_analytics 0.5.6
消息队列 pgq 3.5.0
DuckDB duckdb_fdw 1.1
模糊分词 zhparser 1.1 / pg_bigm 1.2 zhparser 1.0 / pg_jieba pg_bigm 1.2
CDC抽取 wal2json 2.5.3 wal2json 2.5
膨胀治理 pg_repack 1.5.0 pg_repack 1.4.8 pg_repack 1.5.0
AWS RDS PG 可用扩展

AWS RDS for PostgreSQL 16 可用扩展(已刨除PG自带扩展)

namepg16pg15pg14pg13pg12pg11pg10
amcheck1.31.31.31.21.2yes1
auto_explainyesyesyesyesyesyesyes
autoinc1111nullnullnull
bloom1111111
bool_plperl1111nullnullnull
btree_gin1.31.31.31.31.31.31.2
btree_gist1.71.71.61.51.51.51.5
citext1.61.61.61.61.61.51.4
cube1.51.51.51.41.41.41.2
dblink1.21.21.21.21.21.21.2
dict_int1111111
dict_xsyn1111111
earthdistance1.11.11.11.11.11.11.1
fuzzystrmatch1.21.11.11.11.11.11.1
hstore1.81.81.81.71.61.51.4
hstore_plperl1111111
insert_username1111nullnullnull
intagg1.11.11.11.11.11.11.1
intarray1.51.51.51.31.21.21.2
isn1.21.21.21.21.21.21.1
jsonb_plperl11111nullnull
lo1.11.11.11.11.11.11.1
ltree1.21.21.21.21.11.11.1
moddatetime1111nullnullnull
old_snapshot111nullnullnullnull
pageinspect1.121.111.91.81.71.71.6
pg_buffercache1.41.31.31.31.31.31.3
pg_freespacemap1.21.21.21.21.21.21.2
pg_prewarm1.21.21.21.21.21.21.1
pg_stat_statements1.11.11.91.81.71.61.6
pg_trgm1.61.61.61.51.41.41.3
pg_visibility1.21.21.21.21.21.21.2
pg_walinspect1.11nullnullnullnullnull
pgcrypto1.31.31.31.31.31.31.3
pgrowlocks1.21.21.21.21.21.21.2
pgstattuple1.51.51.51.51.51.51.5
plperl1111111
plpgsql1111111
pltcl1111111
postgres_fdw1.11.11.11111
refint1111nullnullnull
seg1.41.41.41.31.31.31.1
sslinfo1.21.21.21.21.21.21.2
tablefunc1111111
tcn1111111
tsm_system_rows1111111.1
tsm_system_time1111111.1
unaccent1.11.11.11.11.11.11.1
uuid-ossp1.11.11.11.11.11.11.1
Aliyun RDS PG 可用扩展

阿里云 RDS for PostgreSQL 16 可用扩展(已刨除PG自带扩展)

namepg16pg15pg14pg13pg12pg11pg10ali_desc
bloom1111111提供一种基于布鲁姆过滤器的索引访问方法。
btree_gin1.31.31.31.31.31.31.2提供一个为多种数据类型和所有enum类型实现B树等价行为的GIN操作符类示例。
btree_gist1.71.71.61.51.51.51.5提供一个为多种数据类型和所有enum类型实现B树等价行为的GiST操作符类示例。
citext1.61.61.61.61.61.51.4提供一种大小写不敏感的字符串类型。
cube1.51.51.51.41.41.41.2提供一种数据类型来表示多维立方体。
dblink1.21.21.21.21.21.21.2跨库操作表。
dict_int1111111附加全文搜索词典模板的示例。
earthdistance1.11.11.11.11.11.11.1提供两种不同的方法来计算地球表面的大圆距离。
fuzzystrmatch1.21.11.11.11.11.11.1判断字符串之间的相似性和距离。
hstore1.81.81.81.71.61.51.4在单一PostgreSQL值中存储键值对。
intagg1.11.11.11.11.11.11.1提供一个整数聚集器和一个枚举器。
intarray1.51.51.51.31.21.21.2提供一些有用的函数和操作符来操纵不含空值的整数数组。
isn1.21.21.21.21.21.21.1按照一个硬编码的前缀列表对输入进行验证,也被用来在输出时连接号码。
ltree1.21.21.21.21.11.11.1用于表示存储在一个层次树状结构中的数据的标签。
pg_buffercache1.41.31.31.31.31.31.3提供一种方法实时检查共享缓冲区。
pg_freespacemap1.21.21.21.21.21.21.2检查空闲空间映射(FSM)。
pg_prewarm1.21.21.21.21.21.21.1提供一种方便的方法把数据载入到操作系统缓冲区或者PostgreSQL缓冲区。
pg_stat_statements1.11.11.91.81.71.61.6提供一种方法追踪服务器执行的所有SQL语句的执行统计信息。
pg_trgm1.61.61.61.51.41.41.3提供字母数字文本相似度的函数和操作符,以及支持快速搜索相似字符串的索引操作符类。
pgcrypto1.31.31.31.31.31.31.3为PostgreSQL提供了密码函数。
pgrowlocks1.21.21.21.21.21.21.2提供一个函数来显示一个指定表的行锁定信息。
pgstattuple1.51.51.51.51.51.51.5提供多种函数来获得元组层的统计信息。
plperl1111111提供perl过程语言。
plpgsql1111111提供SQL过程语言。
pltcl1111111提供tcl过程语言。
postgres_fdw1.11.11.11111跨库操作表。
sslinfo1.21.21.21.21.21.21.2提供当前客户端提供的 SSL 证书的有关信息。
tablefunc1111111包括多个返回表的函数。
tsm_system_rows1111111提供表采样方法SYSTEM_ROWS。
tsm_system_time1111111提供了表采样方法SYSTEM_TIME。
unaccent1.11.11.11.11.11.11.1文本搜索字典,它能从词位中移除重音(附加符号)。
uuid-ossp1.11.11.11.11.11.11.1提供函数使用几种标准算法之一产生通用唯一标识符(UUID)。
xml21.11.11.11.11.11.11.1提供XPath查询和XSLT功能。

性能对比

指标PigstyAliyun RDSAWS RDS
最佳性能PGTPC on NVME SSD 评测 sysbench oltp_rwRDS PG 性能白皮书 sysbench oltp 场景 每核 QPS 4000 ~ 8000
存储规格:最高档容量32TB / NVME SSD32 TB / ESSD PL364 TB / io2 EBS Block Express
存储规格:最高档IOPS4K随机读:最大3M,随机写 2000~350K4K随机读:最大 1M16K随机IOPS: 256K
存储规格:最高档延迟4K随机读:75µs,随机写 15µs4K随机读:200µs500µs / 推断为16K随机IO
存储规格:最高档可靠性UBER < 1e-18,折合18个9 MTBF: 200万小时 5DWPD,持续三年可靠性 9个9, 合 UBER 1e-9 存储与数据可靠性持久性:99.999%,5个9 (0.001% 年故障率) io2 说明
存储规格:最高档成本31.5 ¥/TB·月 ( 5年质保均摊 / 3.2T / 企业级 / MLC )3200¥/TB·月 (原价 6400¥,包月4000¥) 3年预付整体打5折才有此价格1900 ¥/TB·月 使用最大规格 65536GB / 256K IOPS 最大优惠

可观测性

Pigsty 提供了近 3000 类监控指标,提供了 50+ 监控面板,覆盖了数据库监控、主机监控、连接池监控、负载均衡监控等方方面面,为用户提供无与伦比的可观测性体验。

Pigsty 提供了 638 与 PostgreSQL 有关的监控指标,而 AWS RDS 只有 99 个,阿里云 RDS 更是只有个位数指标:

此外,也有一些项目提供了监控 PostgreSQL 的能力,但都相对比较简单初级:


可维护性

指标PigstyAliyun RDSAWS RDS
系统易用性简单简单简单
配置管理配置文件 / CMDB 基于 Ansible Inventory可使用 Terraform可使用 Terraform
变更方式幂等剧本 基于 Ansible Playbook控制台点击操作控制台点击操作
参数调优自动根据节点适配 四种预置模板 OLTP, OLAP, TINY, CRIT
Infra as Code原生支持可使用 Terraform可使用 Terraform
可定制参数点Pigsty Parameters 283 个
服务与支持提供商业订阅支持兜底提供售后工单支持提供售后工单支持
无互联网部署可离线安装部署N/AN/A
数据库迁移提供从现有v10+ PG实例基于逻辑复制不停机迁移至Pigsty托管实例的剧本提供上云辅助迁移 Aliyun RDS 数据同步

成本

经验上看,软硬件资源的部分 RDS 单位成本是自建的 5 ~ 15 倍,租售比通常在一个月。详情请参考 成本分析

要素指标PigstyAliyun RDSAWS RDS
成本软件授权/服务费用免费,硬件约 20 - 40 ¥/核·月200 ~ 400 ¥/核·月400 ~ 1300 ¥/核·月
服务支持费用服务约 100 ¥/ 核·月包含在 RDS 成本中

其他本地数据库管控软件

一些提供管理 PostgreSQL 能力的软件与供应商


其他 Kubernetes Operator

Pigsty 拒绝在生产环境中使用 Kubernetes 管理数据库,因此与这些方案在生态位上存在差异。

  • PGO
  • StackGres
  • CloudNativePG
  • TemboOperator
  • PostgresOperator
  • PerconaOperator
  • Kubegres
  • KubeDB
  • KubeBlocks

更多信息请参阅:


最后修改 2025-12-21: update blogs (cbce062)