# 技术对比

> 与市面类似产品的对比
---

## 与云厂商 RDS 对比

[Pigsty](https://pigsty.cc/) 是使用 AGPLv3 开源的本地优先 RDS 替代，可以部署在您自己的物理机/虚拟机上，也可以部署在云服务器上。

因此，我们选择了全球份额第一的亚马逊云 [AWS RDS for PostgreSQL](https://aws.amazon.com/cn/rds/postgresql/)，以及中国市场份额第一的阿里云 [RDS for PostgreSQL](https://www.alibabacloud.com/zh/product/apsaradb-for-rds-postgresql) 作为参照对象。

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

------

### 功能特性

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

------

### 重要扩展

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

- [**Pigsty 扩展列表**](https://pigsty.cc/ext/list)
- [**AWS RDS 扩展列表**](https://docs.aws.amazon.com/AmazonRDS/latest/PostgreSQLReleaseNotes/postgresql-extensions.html):
- [**阿里云 RDS 扩展列表**](https://help.aliyun.com/zh/rds/apsaradb-rds-for-postgresql/extensions-supported-by-apsaradb-rds-for-postgresql)

| **扩展名称** | **Pigsty RDS** / PGDG 官方仓库     |        **阿里云 RDS**        |   **AWS RDS**   |
|----------|--------------------------------|:-------------------------:|:---------------:|
| 加装扩展     | 自由加装                           |            不允许            |       不允许       |
| 地理空间     | PostGIS 3.5.1                  | PostGIS 3.3.4 / Ganos 6.1 |  PostGIS 3.4.1  |
| 雷达点云     | PG PointCloud 1.2.5            |   Ganos PointCloud 6.1    |                 |
| 向量嵌入     | PGVector 0.8.1 / Svector 0.5.6 |        pase 0.0.1         |  PGVector 0.6   |
| 机器学习     | PostgresML 2.10.0              |                           |                 |
| 时序扩展     | TimescaleDB 2.20.2             |                           |                 |
| 水平分布式    | Citus 13.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     |   parser 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 |



------

### 性能对比

| **指标**       | **Pigsty**                                                                                   | **Aliyun RDS**                                                                                          | **AWS RDS**                                                                                                                                                         |
|--------------|----------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 最佳性能         | [PGTPC on NVME SSD 评测](https://github.com/Vonng/pgtpc/tree/master/sysbench) sysbench oltp_rw | [RDS PG 性能白皮书](https://help.aliyun.com/document_detail/101470.html) sysbench oltp 场景 每核 QPS 4000 ~ 8000 |                                                                                                                                                                     |
| 存储规格：最高档容量   | 32TB / [NVME SSD](https://en.shannon-sys.com/product.html?name=gen_4)                        | 32 TB / **ESSD PL3**                                                                                    | 64 TB / **io2** [EBS](https://aws.amazon.com/cn/blogs/storage/achieve-higher-database-performance-using-amazon-ebs-io2-block-express-volumes/) Block Express        |
| 存储规格：最高档IOPS | 4K随机读：最大3M，随机写 2000~350K                                                                     | 4K随机读：最大 1M                                                                                             | 16K随机IOPS： 256K                                                                                                                                                     |
| 存储规格：最高档延迟   | 4K随机读：75µs，随机写 15µs                                                                          | 4K随机读：200µs                                                                                             | 500µs / 推断为16K随机IO                                                                                                                                                  |
| 存储规格：最高档可靠性  | UBER < 1e-18，折合18个9 MTBF: 200万小时 5DWPD，持续三年                                                  | 可靠性 9个9， 合 UBER 1e-9 [存储与数据可靠性](https://help.aliyun.com/document_detail/476273.html)                    | **持久性**：99.999%，5个9 （0.001% 年故障率） [io2 说明](https://aws.amazon.com/cn/blogs/storage/achieve-higher-database-performance-using-amazon-ebs-io2-block-express-volumes/) |
| 存储规格：最高档成本   | 31.5 ¥/TB·月 ( 5年质保均摊 / 3.2T / 企业级 / MLC )                                                    | 3200¥/TB·月 （原价 6400¥，包月4000¥） 3年预付整体打5折才有此价格                                                            | 1900 ¥/TB·月 使用最大规格 65536GB / 256K IOPS 最大优惠                                                                                                                         |

------

### 可观测性

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

![dashboard](/img/pigsty/dashboard.gif)

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



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

- [pgwatch](https://pgwatch.com/)： 123 类指标
- [pgmonitor](https://github.com/CrunchyData/pgmonitor) ： 156 类指标
- [datadog](https://docs.datadoghq.com/integrations/postgres) ： 69 类指标
- [pgDash](https://pgdash.io/)
- [ClusterControl](https://severalnines.com/product/clustercontrol)
- [pganalyze](https://pganalyze.com/)
- [Aliyun RDS](https://help.aliyun.com/document_detail/102748.html) ： 8 类指标
- [AWS RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html) ： 99 类指标
- [Azure RDS](https://docs.microsoft.com/en-us/azure/postgresql/)

------

### 可维护性

| **指标**        | **Pigsty**                              | **Aliyun RDS**                                                                                                        | **AWS RDS**   |
|---------------|-----------------------------------------|-----------------------------------------------------------------------------------------------------------------------|---------------|
| 系统易用性         | 简单                                      | 简单                                                                                                                    | 简单            |
| 配置管理          | 配置文件 / CMDB 基于 Ansible Inventory        | 可使用 Terraform                                                                                                         | 可使用 Terraform |
| 变更方式          | 幂等剧本 基于 Ansible Playbook                | 控制台点击操作                                                                                                               | 控制台点击操作       |
| 参数调优          | 自动根据节点适配 四种预置模板 OLTP, OLAP, TINY, CRIT  |                                                                                                                       |               |
| Infra as Code | 原生支持                                    | 可使用 Terraform                                                                                                         | 可使用 Terraform |
| 可定制参数点        | [总计](/docs/config/inventory) 280+ 个          |                                                                                                                       |               |
| 服务与支持         | 提供商业订阅支持兜底                              | 提供售后工单支持                                                                                                              | 提供售后工单支持      |
| 无互联网部署        | 可离线安装部署                                 | N/A                                                                                                                   | N/A           |
| 数据库迁移         | 提供从现有v10+ PG实例基于逻辑复制不停机迁移至Pigsty托管实例的剧本 | 提供上云辅助迁移 [Aliyun RDS 数据同步](https://help.aliyun.com/document_detail/322179.html?spm=a2c4g.11186623.0.0.5fb374c9OOi4Dm) |               |

------

### 成本

经验上看，软硬件资源的部分 RDS 单位成本是自建的 5 ～ 15 倍，租售比通常在一个月。详情请参考 [成本分析](/docs/intro/compare)。

| 要素 | **指标**    | **Pigsty**           | **Aliyun RDS**  | **AWS RDS**      |
|----|-----------|----------------------|-----------------|------------------|
| 成本 | 软件授权/服务费用 | 免费，硬件约 20 - 40 ¥/核·月 | 200 ～ 400 ¥/核·月 | 400 ~ 1300 ¥/核·月 |
|    | 服务支持费用    | 服务约 100 ¥/ 核·月       | 包含在 RDS 成本中     |                  |

------

## 其他本地数据库管控软件

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

- [Aiven](https://aiven.io/)： 闭源商业云托管方案
- [Percona](https://www.percona.com/software/postgresql-distribution)： 商业咨询，简易PG发行版
- [ClusterControl](https://docs.severalnines.com/docs/clustercontrol/)：商业数据库管控软件

------

## 其他 Kubernetes Operator

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

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

更多信息请参阅：

- 《[将数据库放入K8S中是一个好主意吗？](https://pigsty.cc/blog/db/db-in-k8s/)》
- 《[将数据库放入容器中是一个好主意吗？](https://pigsty.cc/blog/db/pg-in-docker/)》


------

## PostgreSQL 发行版生态
