
1. Supabase
- 类型:后端即服务(BaaS)
- 简介:基于 PostgreSQL 的开源 Firebase 替代品,提供数据库、认证、存储、实时 API 等功能。
2. Citus
- 类型:水平分布式
- 简介:将 PostgreSQL 转换为分布式数据库,支持分片和并行查询,适用于多节点部署。
3. Babelfish
- 类型:SQL Server 兼容
- 简介:使 PostgreSQL 能够理解 SQL Server 协议和语法,方便从 SQL Server 迁移。
4. IvorySQL
- 类型:Oracle 兼容
- 简介:基于 PostgreSQL 并增强对 Oracle 兼容性,支持 PL/SQL 等特性。
5. OpenHalo
- 类型:MySQL 兼容
- 简介:使 PostgreSQL 兼容 MySQL 协议和部分语法,便于 MySQL 应用迁移。
6. FerretDB
- 类型:MongoDB 兼容
- 简介:将 MongoDB 协议请求转换为 PostgreSQL 可执行的操作,作为 MongoDB 的开源替代。
7. OrioleDB
- 类型:OLTP 优化
- 简介:面向高性能 OLTP 的存储引擎,旨在提升 PostgreSQL 的写入和索引效率。
8. pgEdge
- 类型:多写地理分布
- 简介:专注于多主复制和边缘计算,支持低延迟的分布式 PostgreSQL 部署。
9. Percona(Percona Distribution for PostgreSQL)
- 类型:透明数据加密
- 简介:由 Percona 提供的 PostgreSQL 发行版,包含审计、加密等企业级安全功能。
10. PolarDB PG
- 类型:云原生 RAC
- 简介:阿里云 PolarDB 的 PostgreSQL 兼容版,实现存储计算分离与多节点集群。
11. AgensGraph
- 类型:图数据库内核
- 简介:基于 PostgreSQL 的混合图数据库,支持 SQL 和 Cypher 查询。
12. Cloudberry
- 类型:PGMPP 数仓
- 简介:基于 PostgreSQL 的大规模并行处理(MPP)数据仓库,适用于分析场景。
详细解读这12个PostgreSQL生态项目的具体场景、关键语法、发布日期、作用及所属领域。
1. Supabase
- 发布日期:2020年 (开源)
- 作用:提供一套完整的后端服务,让开发者(尤其是前端)无需编写API,直接通过客户端SDK操作数据库、用户认证和文件存储。
- 具体场景:适合SaaS应用、移动App、AI Agent应用(如扣子编程)的快速开发,能大幅缩短上线时间。
- 关键语法/操作 :
-
前端查询 :通过
supabase-js库直接调用。typescript// 查询数据 (自动生成RESTful API) const { data } = await supabase.from('todos').select('*'); // 实时订阅 (监听数据库变更) supabase.from('todos').on('*', handleChange).subscribe(); -
权限控制 :依赖PostgreSQL原生的行级安全 (Row Level Security, RLS) 策略,在数据库层直接限制不同用户的数据可见范围。
-
- 领域:后端即服务 (BaaS) / 云原生开发。
2. Citus
- 发布日期:2012年 (微软于2019年收购)
- 作用 :将多个PostgreSQL服务器组合成一个"集群",对外表现为一个超大数据库。通过分片 (Sharding) 和并行计算解决单机无法承载的海量数据和高并发问题。
- 具体场景:SaaS多租户系统(按租户ID隔离)、物联网时序数据(如千万级设备上报)、需要HTAP(事务+分析)混合负载的游戏或电商平台。
- 关键语法/操作 :
-
分布式表创建 :指定分片键,Citus自动分发数据。
sql-- 创建表 CREATE TABLE events (user_id int, data jsonb); -- 指定 user_id 为分片键,Citus 会自动将其哈希分布到各节点 SELECT create_distributed_table('events', 'user_id'); -- 创建参考表 (每个节点存一份,用于加速Join) SELECT create_reference_table('users'); -
查询路由 :若
where条件带分片键,则精准路由到单个分片(极快);若不带,则并行分发到所有分片(MPP模式)。
-
- 领域:分布式数据库 / 在线分析处理 (OLAP) 与在线事务处理 (OLTP)。
3. Babelfish
-
发布日期:2021年 (AWS开源)
-
作用 :为PostgreSQL添加了一个"翻译层",使其能理解SQL Server (T-SQL) 的协议、语法和游标。旨在让企业零成本、零修改地将SQL Server应用迁移到PostgreSQL,摆脱商业数据库高额许可费。
-
具体场景:企业去"IE"化,将封闭的商业SQL Server数据库替换为开源的PostgreSQL。
-
关键语法/操作 :
-
连接:应用使用原本连接SQL Server的驱动和端口(默认1433)连接Babelfish。
-
存储过程 :直接在PostgreSQL中编写T-SQL语法的存储过程。
sql-- 在 Babelfish 中,你可以直接执行 T-SQL 代码 CREATE PROCEDURE get_employee @emp_id INT AS BEGIN SELECT * FROM employees WHERE id = @emp_id; END;
-
-
领域:数据库迁移 / 企业级架构改造。
4. IvorySQL
-
发布日期:5.0版本于2025年11月发布
-
作用:兼容Oracle数据库。让原本运行在Oracle上的应用(尤其是依赖PL/SQL存储过程的系统)能够平滑迁移到PostgreSQL生态,减少代码重写工作量。
-
具体场景:金融、政府等信创国产化替代场景,将Oracle替换为开源数据库。
-
关键语法/操作 :
-
PL/SQL兼容 :支持Oracle特有的
PLSQL块、包、嵌套函数。sql-- Oracle 风格的 NULL 处理 (将 '' 视为 NULL) SELECT CONCAT('a', NULL); -- 返回 'a' (而非 PG 默认的 NULL) -- 支持 Oracle 的 %ROWTYPE 属性 DECLARE v_emp employees%ROWTYPE; BEGIN ... END;
-
-
领域:数据库迁移 / Oracle替代。
5. openHalo
- 发布日期:2025年4月1日
- 作用 :MySQL协议级兼容。它不是简单的语法转换,而是在内核层面实现了MySQL的网络协议。这意味着原本为MySQL写的PHP、Java应用,可以直接连接openHalo,无需修改驱动或更换ORM框架。
- 具体场景:帮助互联网创业公司或传统企业,将使用MySQL的业务系统无缝迁移到PostgreSQL内核上,享受PG的优化器性能和丰富生态。
- 关键语法/操作 :
- 协议兼容:应用连接串直接使用MySQL默认端口(3306)。
- 语法兼容 :支持MySQL特有的
LIMIT优化、INSERT INTO ... ON DUPLICATE KEY UPDATE等专属语法。
- 领域:数据库迁移 / 混合数据库架构。
6. FerretDB
-
发布日期:2023年4月 (1.0正式版)
-
作用 :MongoDB的替代品。由于MongoDB修改了开源协议(SSPL),许多云厂商不敢再使用。FerretDB作为代理,将MongoDB的查询协议转换为SQL,数据实际存储在PostgreSQL中。
-
具体场景:需要灵活Schema(无模式)但希望使用成熟关系型数据库底层存储的场景,如内容管理系统、日志收集、原型开发。
-
关键语法/操作 :
-
连接 :使用标准MongoDB Shell连接。
javascript// 使用 MongoDB 驱动连接 FerretDB use test; // 插入文档 (BSON格式) db.scientists.insertOne({ name: "Ada", born: 1815 }); // 查询 db.scientists.find({ born: { $gt: 1800 } });
-
-
领域:文档数据库 / 协议转换网关。
7. OrioleDB
-
发布日期:2022年 (概念验证,持续迭代)
-
作用:一个新的存储引擎,旨在解决PostgreSQL原生引擎(Heap)在高并发写入时的性能瓶颈(如写放大、Vacuum冻结风暴)。它通过无锁数据结构和优化日志解决。
-
具体场景:超高吞吐量的OLTP场景(如证券交易、抢票系统),以及对写入延迟极度敏感的物联网传感器数据采集。
-
关键语法/操作 :
-
表创建 :在建表时指定使用 OrioleDB 引擎。
sql-- 假设插件已安装 CREATE TABLE fast_table (id int, data text) USING orioledb;
-
-
领域:数据库内核 / 高性能事务处理 (OLTP)。
8. pgEdge
- 发布日期:2023年
- 作用 :实现多主复制。传统PostgreSQL复制通常是主从模式(单写),pgEdge允许多个节点同时写入,并解决冲突,支持在网络条件较差的地理分布式部署。
- 具体场景:全球分布式应用、边缘计算节点、需要本地写入低延迟且跨地域数据同步的场景。
- 关键语法/操作 :
- 配置DDL:通过特定的函数定义节点和订阅集,实现多点写入。
- 领域:分布式系统 / 边缘计算 / 高可用架构。
9. Percona Distribution for PostgreSQL
-
发布日期:持续更新 (Percona公司维护)
-
作用 :提供企业级开箱即用的工具集,核心卖点是透明数据加密 (TDE),即在不改动应用代码的情况下,对数据库底层文件(数据文件、WAL日志)进行加密,防止磁盘被盗或泄露。
-
具体场景:满足金融、医疗等合规性要求(如等保、GDPR),要求数据"静态加密"的场景。
-
关键语法/操作 :
-
开启加密 :需配置
pg_tde插件和密钥管理(如Vault)。sql-- 加载插件 (需配置 shared_preload_libraries) -- 指定密钥提供者 (如 HashiCorp Vault) SELECT pg_tde_add_key_provider_vault_v2(...); -- 设置主密钥 SELECT pg_tde_set_principal_key(...); -- 建表时指定加密存储引擎 CREATE TABLE secure_data (id int) USING tde_heap;
-
-
领域:数据库安全 / 企业级运维。
10. PolarDB PG
- 发布日期:2018年 (阿里云商业化)
- 作用 :存算分离架构。将计算CPU/内存和存储云盘分离。你可以在几秒钟内拉起一个只读节点分担读压力,存储是按量付费的共享盘。
- 具体场景:高弹性场景(如电商大促,平时2核,大促秒级变64核)、读多写少的应用(如内容社区、SaaS报表系统)。
- 关键语法/操作 :
- 兼容性:完全兼容PostgreSQL语法,应用无感迁移。
- 扩展性 :提供
DBLink或集群管理命令来添加只读节点。
- 领域:云原生数据库 / 弹性计算。
11. AgensGraph
-
发布日期:2016年 (Bitnine公司)
-
作用 :混合存储。一张表里既能存普通的关系型数据(行/列),又能存图数据(顶点/边)。支持标准SQL和OpenCypher(图查询语言)的混合查询。
-
具体场景:知识图谱、社交网络好友推荐(N度关系查询)、反欺诈的资金链路追踪(图遍历比SQL递归快千百倍)。
-
关键语法/操作 :
-
创建图 :类似创建Schema。
sqlCREATE GRAPH social; -- 创建顶点和边 CREATE (:person {name: 'Alice'}); CREATE (:person {name: 'Bob'}); -- 图查询:查找 Alice 的朋友 MATCH (a:person)-[:knows]->(b:person) WHERE a.name = 'Alice' RETURN b.name;
-
-
领域:图数据库 / 知识图谱 / 社交网络分析。
12. Cloudberry Database
-
发布日期:2023年 (原Greenplum生态衍生)
-
作用 :MPP (大规模并行处理) 数据仓库。继承自Greenplum(曾基于PostgreSQL 9.4),专门用于海量数据的OLAP分析。它会将一条复杂SQL拆解给几百台机器并行计算。
-
具体场景:企业数据仓库、BI报表、大屏展示、超大规模日志分析(PB级数据)。
-
关键语法/操作 :
-
表分布 :建表时必须指定分布键(类似Citus但更偏向分析)。
sql-- 指定分布键,数据会打散到所有节点 CREATE TABLE sales (id int, amount numeric) DISTRIBUTED BY (id); -- 执行复杂分析,自动启用并行 SELECT region, sum(amount) FROM sales GROUP BY region;
-
-
领域:数据仓库 / 在线分析处理 (OLAP) / 商业智能 (BI)。
总结表格:
| 项目 | 一句话定位 | 核心差异化语法/特性 | 适用领域 |
|---|---|---|---|
| Supabase | 后端即服务 | 自动生成RESTful API + RLS策略 | 快速开发/前端全栈 |
| Citus | 水平分片扩展 | create_distributed_table |
分布式OLTP/多租户 |
| Babelfish | SQL Server迁移 | T-SQL兼容 + TDS协议 | 去微软化/迁移 |
| IvorySQL | Oracle迁移 | PL/SQL兼容 + Oracle函数包 | 去Oracle化/信创 |
| openHalo | MySQL协议兼容 | MySQL原生协议握手 | MySQL平滑迁移 |
| FerretDB | MongoDB替代 | MongoDB协议转换 | 文档存储/开源合规 |
| OrioleDB | 高性能写入 | USING orioledb 存储引擎 |
高并发写入/IoT |
| pgEdge | 多主/地理分布 | 多点写入冲突解决 | 全球分布式/边缘计算 |
| Percona PG | 企业级安全 | 透明数据加密 (TDE) | 数据加密/合规 |
| PolarDB PG | 云原生弹性 | 存储计算分离 | 云上弹性扩缩容 |
| AgensGraph | 图数据库 | Cypher + SQL混合查询 | 图分析/知识图谱 |
| Cloudberry | MPP数仓 | DISTRIBUTED BY 分布键 |
大数据分析/BI |
如果你对其中某个项目(如Citus的分布式部署细节或IvorySQL的迁移评估)有进一步兴趣,我可以继续深入说明。