1995年,随着SQL语言支持的添加,Postgres被重命名为Postgres95。然后,因为名称中含有数字,会与版本的数字产生歧义,决定修改命名为PostgreSQL。
如今,官方名称是“PostgreSQL”(发音为“post-gresse-Q-L”)。然而,“Postgres”这个名称仍然被广泛接受。
PostgreSQL是在PostgreSQL License下发布的,它是被OSI所认可的众多开源许可证中的一种。它是一个非常自由的开源许可证,类似于BSD或MIT许可证。
这一许可证赋予用户分发、安装、修改PostgreSQL,甚至可以销售,是开源软件中最为开放自由的许可证。一些公司,比如美国的EnterpriseDB和俄罗斯的PostgresPro,以此方式发展他们专有的PostgreSQL版本。国内也有众多基于PostgreSQL研发的开源分支项目,主要包括:腾讯OpenTenBase、阿里PolarDB for PostgreSQL、华为OpenGuass、瀚高IvorySQL等。
但是,PostgreSQL并非完全免费:可能会涉及咨询、培训、技术服务、数据库迁移、或者整合生产中必不可少的各种外围工具等有偿价值服务。这一许可证随后被社区中许多项目采纳,比如pgAdmin、pgCluu、pgstat等。

版本功能
PostgreSQL主版本发布时间及功能概要:
l 1996年PostgreSQL 1.0发布,1.0版本是第一个发布版本。
l 2003年PostgreSQL 7.4发布,它是第一个真正稳定的版本。事务日志管理得到了显著改善,引擎进行了许多优化。
l 2005年PostgreSQL 8.0发布, 8.0版本标志着 PostgreSQL 期待已久地进入高级数据库管理系统市场,引入了诸如表空间、Java 存储过程、时间点恢复等功能,同时还提供了适用于 Windows 的本地版本。
l 2008年:PostgreSQL 8.3发布,8.3版本着重于性能改进和引入新功能。同时,它也是鼓励贡献导致开发组织发生重大变化的版本:引入了提交集(commitfests)管理,创建了相关的网络工具等。
l 2010年:PostgreSQL 9.0发布。9.x 版本专注于物理复制。9.0 版本集成了异步复制功能。9.1 版本添加了同步复制,并在许多复制方面进行了改进,特别是在管理和监控方面。9.2 版本引入了级联复制。9.3 版本和9.4 版本包含了一些额外的改进。9.4 版本主要集成了 PostgreSQL 中逻辑复制集成的初始组件。
l 2016年:PostgreSQL 9.6发布,引入了并行化,这是许多用户期待已久的功能。
l 2017年:PostgreSQL 10发布 ,第10版提供了许多新功能,如并行化和分区的显着改进(声明式分区完善了先前基于继承的分区),以及逻辑复制的添加。
l 2023年:PostgreSQL 16发布,从第11版到第16版的改进更为渐进,涵盖了所有方面。声明式分区和逻辑复制逐渐改进,无论是在性能上还是在开发便利性上都有所提升。通过即时编译、越来越多操作的并行化、覆盖索引和统计数据的细化,性能进一步提高。管理方面也变得更加简单:新增系统视图、额外角色以减少超级用户的使用、复制工具、以及在现有实例上启用校验和。
如果我们以更宏观的视角来看版本演进,版本7的发展目标是构建一个稳定耐用的数据库引擎的基础。版本8的目标是在功能和性能上赶上市场上的主要参与者。对于版本9,重点更多地放在了复制和可扩展性上。版本10主要基于操作的并行化(主要由EnterpriseDB开发)和逻辑复制(由2ndQuadrant开发)。版本11到16进一步改进了这两个方面,其中包括引擎各个领域的数千项其他改进,特别是性能和管理便利性。
更多主版本功能细节可参考另一本教材《快速掌握PostgreSQL新特性》。另外,可以在 postgresql.org 上随时下载从1.0 到当前版本的源代码,相关链接地址:https://www.postgresql.org/ftp/source/
版本更新
一次主要版本更新会带来新功能、行为变更等。一般每年秋季会发布一次主要版本。主要迁移可以直接从任何之前的版本进行。版本号每年递增(2019年版本为12,2023年版本为16)。
一个次要版本仅包含错误修复或安全漏洞修复。次要版本的发布频率比主要版本更频繁,通常每季度发布一次,除非有重大错误或安全漏洞。每个错误都会在项目当前维护的所有稳定版本中进行修复。次要版本的编号有两个数字。例如,2023年5月发布了版本15.3、14.8、13.11、12.15和11.20。
注:在10版本之前,每年的主要版本编号为两位数:2010年是9.0,2016年是9.6。次要版本编号比主要版本多一个数字(例如9.6.24)。这导致了一些混淆,因此进行了编号更改,主要版本编号为一位数:2017年是10,2023年是16,次要版本编号比主要版本多一个数字(例如10.23)。不言而喻,早些版本已经完全过时并且不再受支持,但许多人仍在继续使用。
次要更新是指在同一主要版本分支内升级到新版本,例如从14.8到14.9或从16.0到16.1(但不是从14.x版本升级到16.x版本)。次要版本的更新是累积的:您可以将一个15.0版本的实例直接更新到15.5版本,而不需要经过中间版本15.1到15.4。
通常,次要更新是毫无问题的,只需替换二进制文件并重新启动(因此会产生短暂的中断)。数据文件保持相同的格式。额外的操作可能存在,但是很少见。然而,就像任何更新一样,应该谨慎考虑潜在的副作用。特别重要的是要阅读发布说明,并在可能的情况下在测试环境进行测试。
PostgreSQL开发者的总体理念可以概括为:“我们的政策是以质量为基础,而不是以发布日期为基准。” 然而,即使这种理念在开发者中仍然存在,实际上每年通常在秋季都会发布一个主要的稳定版本。为了不牺牲版本的质量,任何被认为稳定性不足的功能都会推迟到下一个版本。有时由于不可接受的错误,主要版本的发布也会延迟。
目前的趋势是保证每个主要版本的支持至少持续5年。因此,自2022年11月起,不再支持10版本,自2023年11月起,不再支持11版本。它们将不再有任何次要更新,这意味着不再有错误修复或安全补丁。最新的主要版本,16版本预计将支持至2028年。
如果您使用的是11版本或更低版本,请尽快计划迁移到更新版本,如15或16。自2022年起,10版本已不再维护,11版本将于2023年11月停止维护。它们仍然可以正常工作,但将不再修复错误,包括安全漏洞!如果您正在使用这些版本或更早版本,则必须尽快考虑版本迁移。
12到16版本是建议用于生产环境的版本。最重要的是应用修正性更新。注意,12版本将于2024年11月后不再受支持。
16版本已正式稳定。因此,此版本建议用于新的生产环境安装。根据经验,当一个x.0版本在秋季发布时,通常是稳定的。许多数据库管理员更倾向于谨慎等待首批次要更新(通常在11月份)才将其投入生产。这种谨慎需要与对新功能的兴趣相平衡。更多详情,请参阅版本比较表。
版本分支
存在许多衍生版本的PostgreSQL。它们通常用于非常特定的用例,并提供社区版本未提供的功能。它们的代码通常是闭源的,需要购买许可证。PostgreSQL许可证允许这样做,这种现象早在1990年代就已经存在,当时有各种商业产品,如Illustra。
修改PostgreSQL的代码会产生一些负面影响。某些PostgreSQL功能可能会被禁用。因此,很难确定哪些功能是真正可用的。此外,每个新的次要版本都需要对其添加的代码进行适应。每个新的主要版本都需要对其代码进行更大幅度的调整。这是一项巨大的工作,通常对于出版公司而言并没有足够的附加价值来进行。唯一一家完全这样做的公司是EnterpriseDB,他们成功地提供了定期更新。然而,如果我们回顾一下Greenplum的例子,他们在相当长的一段时间内一直停留在8.0版本上,并试图解决这个问题。到了2021年底,Greenplum 6.8的版本达到了9.4的水平,这个版本被社区认为已经过时两年多了。截至2023年1月,Greenplum 7.0 beta仍然只达到了PostgreSQL 12.12的水平。
同样,也不能保证公司不会放弃其分支版本。例如,当PostgreSQL在Windows上不可用时,就存在一些分支版本:这些分支版本大多在8.0版本推出时消失了,因为该版本在社区版中提供了这一功能。
也有一些分支版本是为了管理复制而创建的。同样,当PostgreSQL在9.0版本开始提供复制功能时,大多数这些分支版本(以及它们的客户)都被放弃了。然而,并不是所有的分支版本都立即被放弃。例如,Slony因为当时提供了PostgreSQL还没有的功能而仍然非常活跃(特别是不同主要版本之间的复制和部分复制)。随着这些功能在PostgreSQL 10中的到来,Slony的衰落非常明显。
因此,重要的是要理解:一旦用户选择了衍生版本,他们就严重地(甚至完全地)依赖于出版公司的善意来继续他们的产品,更新最新的修复内容,并将社区版本的最新功能加入其中。为了避免这个问题,一些公司决定将他们的分支版本转变为扩展。这样做维护起来要简单得多,并且不会束缚他们的用户。例如,Citus Data(被微软收购)将分片功能通过扩展实现;或者是TimescaleDB,他们专注于时间序列的扩展。
在专门用于数据仓库的分支版本示例中,历史上最知名的是来自 Pivotal(被 VMware 收购)的 Greenplum 和来自 IBM 的 Netezza。尽管 Greenplum 每隔几年尝试与社区版的 PostgreSQL 对齐,但 Netezza 不是这种情况,它针对专用硬件进行了优化,并从 PostgreSQL 7.2 分支出来。
EnterpriseDB 的 EDB Postgres Advanced Server 有助于从 Oracle 迁移。其代码是专有的,需遵守付费许可协议。一些功能最终会被纳入社区代码(只要 EnterpriseDB 愿意并且社区验证了该功能的实用性和可能的集成性)。
BDR,原为 2nd Quadrant 推出,现由 EnterpriseDB 所有,是一个旨在提供 PostgreSQL 多主版本的分支,但最新版本的代码已经闭源。很难确定它们目前的状态。使用它需要从他们那里获得支持。
俄罗斯公司 Postgres Pro,与 EnterpriseDB 类似,提供其自有版本中的各种功能,同时经常提议将这些功能纳入社区版本中。
除非特别情况,建议使用官方的、开源的、免费的版本。您能够清楚地知道它提供了什么,并且可以自由选择合作伙伴(用于培训、支持、审计等)。
辅助项目
PostgreSQL 只是一个数据库引擎。当您安装它时,您只有这个引擎。您有一些命令行工具(在我们的“图形工具和控制台”和“常见任务”模块中详细说明),但没有提供图形工具。
由于这种缺乏,一些人决定开发这些图形工具。这导致了极大的丰富性,这要归功于围绕主要项目而展开的各种“卫星”项目。
根据选择,我们这里只会介绍免费和开源软件。针对每个问题,也有专有解决方案。这些解决方案有时可能会带来新功能。然而,应该考虑到开源社区的提供满足了大多数 PostgreSQL 用户的需求。
管理、开发、建模
有不同的图形化工具用于管理、开发和建模。更全面的列表可在PostgreSQL维基上找到。以下是经常使用的几个工具介绍:
l pgAdmin4 是专门用于 PostgreSQL 的管理工具,同时也允许查询。(版本 3 被认为已经过时。
l temBoard 是一个更全面的管理控制台。temBoard 整合了监控、仪表板、实时会话管理、碎片分析、配置和性能分析。
l DBeaver 是一种常见的查询工具,可用于许多不同的数据库,并适用于 PostgreSQL。链接:
l 对于建模,pgModeler 专门用于 PostgreSQL。它允许建模、对现有模式进行反向工程,并生成迁移脚本。
- 资源链接:
https://wiki.postgresql.org/wiki/Community_Guide_to_PostgreSQL_GUI_Tools
pgadmin:https://www.pgadmin.org/
temBoard:https://labs.dalibo.com/temboard/
DBeaver:https://dbeaver.io/
pgModeler:https://pgmodeler.io/
备份
下面列出的工具是我们推荐用于执行管理备份的主要工具。它们基于 PostgreSQL 的标准工具进行物理或逻辑备份。
l 逻辑导出:pg_back;
l 物理备份(PITR):pgBackRest,barman。
监控
仅举几个成熟且免费的项目:
l check_pgactivity 是一个Nagios探针,能够检索由PostgreSQL提供的大量活动统计信息。因此,需要一个Nagios服务器(或其众多分支或覆盖版)来管理警报和图表。另外,还有 check_postgres。资源链接:https://github.com/OPMDG/check_pgactivity
https://bucardo.org/check_postgres/
l postgres_exporter 是用于Prometheus的指标导出程序。资源链接:https://github.com/prometheus‑community/postgres_exporter
l PoWA 由一个记录由pg_stat_statements扩展检索的统计信息的扩展和一个Web应用程序组成,该应用程序允许轻松检索查询及其统计信息。资源链接:https://powa.readthedocs.io/en/latest/
审计
l pgBadger 是 PostgreSQL 追踪(特别是查询)的基本分析工具。资源链接:https://pgbadger.darold.net/
l pgCluu 允许对系统和 PostgreSQL 进行分析。资源链接:https://pgcluu.darold.net/
迁移
有许多工具可用于将使用其他引擎的数据库迁移到 PostgreSQL。在实践中,最困难的部分通常是应用程序代码(存储过程)。有几种免费或专有工具,效果各异。让我们推荐最常用的两种:
l Ora2Pg:由Gilles Darold开发,可以转换数据模式,迁移数据,甚至尝试将 PL/SQL 代码转换为 PL/pgSQL。它还可以转换 MySQL 数据库。资源链接:http://ora2pg.darold.net/
l pgloader:由Dimitri Fontaine开发,允许从 MySQL、SQLite 或 MS SQL Server 迁移,并导入 CSV 文件、DBF(dBase)文件或 IXF(独立交换文件)。资源链接:https://pgloader.io/
这些工具是免费的。提供迁移服务的公司通常也开发了自己的工具。
PostGIS
PostGIS 将支持地理对象功能添加到 PostgreSQL 中。这是一个完全独立的项目,由 Refractions Research 公司在 GPL 许可下开发,得到了活跃社区的支持,并被地理空间领域的专家(IGN、BRGM、Airbnb、Mappy、OpenStreetMap等)广泛使用,但也适用于较小的项目。主要应用场景包括:
l 用于几何/地理类型和工具的扩展
l 空间数据库的参考
l 哪些道路穿过了长江?
l 北京周边有哪些城市?
l 哪些餐馆距离公司不到3公里?
从技术上讲,它是一个扩展,将 PostgreSQL 转换为空间数据服务器,将被地理信息系统(GIS)使用,类似于Oracle Spatial 扩展。PostGIS 符合 OpenGIS Consortium 的指南,并已被该组织认证,确保 PostGIS 符合标准。
PostGIS 允许您编写如下类型的查询:
SELECT restaurants.geom, restaurants.name FROM restaurants WHERE EXISTS (SELECT 1 FROM routes WHERE ST_DWithin(restaurants.geom, routes.geom, 3000) AND route.name = 'Nationale 12')
PostGIS 提供索引函数,可以使用 GiST 索引快速访问几何对象。上述查询显然不需要扫描所有餐馆以找到符合搜索条件的餐馆。
功能列表包括对大地坐标的支持;在各种本地坐标系统中进行投影和重新投影;几何分析运算符(凸包、简化等)。
PostGIS 已集成到主要地图服务器、ETL工具和处理工具中。
版本3.0带来了并行管理、对SP-GiST和GiST索引的改进支持,以及对GeoJSON类型的更好支持。
赞助商和企业用户
主要赞助商
PostgreSQL积极为开发做出贡献的赞助商名单包含在官方赞助商名单中[75]。以下仅是一个概览。
– 致力于 PostgreSQL 的公司: – Crunchy Data(美国):Tom Lane、Stephen Frost、Joe Conway... – EnterpriseDB(美国):Bruce Momjian、Robert Haas、Dave Page... – 2nd Quadrant(英国):Simon Riggs、Peter Eisentraut... *被EDB收购 – PostgresPro(俄罗斯):Oleg Bartunov、Alexander Korotkov – Cybertec(奥地利)、Dalibo(法国)、Redpill Linpro(瑞典)、Credativ(德国)... – 销售分支或扩展的公司: – Citusdata(微软)、Pivotal(VMWare)、TimescaleDB
其中,EnterpriseDB是一家美国公司,提供一种专有版本的PostgreSQL,该版本与Oracle兼容。他们雇佣了几位PostgreSQL项目的重要开发人员(其中三人是核心团队成员),并向社区贡献了大量工作。他们还拥有财务实力,使他们能够赞助围绕PostgreSQL举办重要活动:在美国的PGEast和PGWest,以及在欧洲的PGDay。
在2020年,EnterpriseDB收购了2ndQuadrant,这是一家由长期从事PostgreSQL开发的Simon Riggs创立的英国公司。2nd Quadrant开发了许多围绕PostgreSQL的工具,如pglogical,派生版本如Postgres-XL或BDR,以及像barman或repmgr等附属工具。
Crunchy Data提供自己的认证版本,并资助了许多开发项目。
许多其他致力于 PostgreSQL 的公司分布在许多国家。在官方赞助商中,我们可以找到奥地利的 Cybertec 或瑞典的 Redpill Linpro。在俄罗斯,PostgresPro 维护着一种本地版本,并向社区贡献了许多开发项目。
在法语区的欧洲,Dalibo积极参与社区。该公司是 PostgreSQL 项目的重要赞助商,并表明长期支持。它开发和维护着社区高度认可的几个工具,如之前的 Open PostgreSQL Monitoring(OPM)或 check_pgactivity[76] 探测器,最近是 temBoard[77] 管理控制台,以及许多其他正在进行的项目,并积极参与 PostgreSQL 的补丁开发。Dalibo 还赞助了法国和欧洲的 PGDay 等活动,以及法语社区。
像 Citusdata(被微软收购)、Pivotal(VMWare)或 TimescaleDB 这样的公司提供或曾提供过它们的衍生版本,但它们“玩这个游戏”,并参与开发社区版本,特别是通过努力确保他们的产品与之保持一致。
[75]官方赞助商名单:https://www.postgresql.org/about/sponsors/ [76]check_pgactivity:https://github.com/OPMDG/check_pgactivity [77]temBoard:https://labs.dalibo.com/temboard
其他赞助商
许多非数据库相关的公司也为PostgreSQL做出了贡献。主要包括:
l NTT资助了许多针对PostgreSQL的补丁。
l 富士通在PostgreSQL的早期阶段参与了许多开发工作,并雇佣了Amit Kapila。
l VMWare长期雇佣了芬兰开发者Heikki Linnakangas,后来一段时间他在Pivotal工作。VMWare还雇佣了Michael Paquier和Julien Rouhaud。
l Red Hat长期全职雇佣Tom Lane来工作在PostgreSQL上。他能够将大部分工作时间投入到这个项目中,尽管他在Red Hat内部有其他任务。Tom Lane还曾在SalesForce工作,后来在2015年底加入了Crunchy Data Solutions。
l Skype曾经提供过一些非常有趣的工具:如pgBouncer(连接池器)、Londiste(基于触发器的复制)等。这些是内部使用的工具,并以BSD许可证发布,作为对社区的贡献。尽管被微软收购,但其中一些仍然有用且在维护。
l Zalando以高可用性工具Patroni而闻名。
l 许多与云相关的公司也是赞助商之一,如Conova(奥地利)、Heroku或Rackspace(美国),以及诸如谷歌、亚马逊网络服务和再次是微软等巨头。
主要企业用户
基于PostgreSQL成熟稳定的功能与性能、灵活的扩展性、开放友好的开源协议,国内外有大量知名企业在是使用PostgreSQL。下面介绍几个比较典型的国外企业用户:
① Instagram是一个全球知名的社交媒体平台,专注于照片和视频分享。它由 Kevin Systrom 和 Mike Krieger 创建,于2010年10月正式推出,2020年全球最具价值500大品牌榜中,Instagram排名第57位。Instagram自创立以来一直在使用PostgreSQL[84]。
② Zalando是一家欧洲领先的在线时尚零售公司,总部位于德国柏林。Zalando已多次描述其PostgreSQL基础设施,并在2018年宣布他们在内部使用了300个数据库,在AWS云中使用了650个实例。Zalando为社区做出了贡献,尤其是通过其高可用性工具Patroni简化PostgreSQL在Kubernetes环境中的部署、管理和维护的Postgres Operator by Zalando、监控和分析PostgreSQL数据库的性能pganalyze为社区做出贡献。
③ Yandex是俄罗斯最大的互联网公司之一,提供一系列的服务,包括搜索引擎、地图服务、电子邮件、新闻聚合、在线支付、音乐流媒体、云存储、人工智能等。在2016年描述了将300TB的Yandex.Mail数据从Oracle迁移到PostgreSQL的过程。
④ 法国气象局(Météo-France)作为法国的国家气象服务机构,负责气象预报、气候学研究以及气象灾害预警等工作。随着开源软件在全球范围内的普及,法国政府一直在推动政府机构采用开源解决方案,以降低软件成本,提高数据安全性,并促进技术自主性。在这个背景下,法国气象局也开始使用PostgreSQL这一开源关系型数据库管理系统(RDBMS)。另外,法国国家地理研究所(IGN)自2006年起就开始使用PostGIS
国内外有很多企业采用了PostgreSQL作为其核心数据库,以下是一些典型的用户案例,涵盖了不同行业和应用场景:
① 中国平安:平安集团在国内是PostgreSQL的大型用户之一,已部署超过1500个PostgreSQL实例用于平安银行及金融保险业务,并且每天还在持续增加新的实例。这体现了PostgreSQL在金融行业高并发交易、数据安全及合规性方面的能力。
② 中国工商银行(ICBC),作为全球最大的银行之一,在其业务中采用了PostgreSQL数据库,尤其是在一些特定的技术领域和项目中。工商银行在其大数据平台上使用PostGIS(PostgreSQL的地理信息系统插件)来处理空间数据,对客户的行为模式进行分析,比如客户的到店轨迹,从而预测客户的贷款意愿和其他金融需求。
③ 兴业证券,在PostgreSQL实践方面,选取了自研的系统产品管理平台作为试点,该系统采用通用Java开发技术,存在较多复杂SQL应用场景,为比较典型的混合事务/分析处理类应用系统,对于验证PostgreSQL的可用性具有较大意义。经过一段时间的测试及适配改造,由于标准SQL无需调整,在完成存储过程及函数改造、分区表定义改造、分页功能改写、dual表引用改造等工作之后,该系统正式Oracle切换至PostgreSQL,一直保持稳定运行。
④ 去哪儿网(Qunar)是中国领先的在线旅行服务公司,提供机票、酒店、旅游等预订服务。在数据库技术选型方面,去哪儿网选择了PostgreSQL作为其核心数据库解决方案之一。
⑤ 腾讯广泛使用PostgreSQL及其衍生产品。腾讯云数据库团队基于PostgreSQL打造的企业级分布式HTAP开源数据库OpenTenBase 不仅应用于微信支付、腾讯会议、腾讯视频等自主业务,而且服务于微众银行、中国人口普查、平安银行、中国人民银行清算总中心等业务系统。其中,支撑微众银行2.7亿个人客户、188万小微企业客户,支持单日金融交易峰值7.5亿笔。
⑥ 阿里巴巴集团通过阿里云的基于PostgreSQL的RDS服务和数据库产品,为内外部客户提供基于PostgreSQL的数据库解决方案,支持各种复杂业务场景,特别是在电商、物流、云计算服务等领域。特别是PolarDB PostgreSQL 版(简称PolarDB-PG)是新一代云原生企业级开源数据库,支持存储计算分离、极致弹性伸缩、插件化分布式等大量企业级特性,提供云原生分布式并行执行框架的混合负载处理能力,通过开源,引领云原生数据库技术的发展,并承诺提供自带最佳实践、100%与云上版本一致、100%全面开源、企业级产品质量保证。
服务实现
以下一些著名的供应商提供 PostgreSQL 作为软件即服务:
① Heroku是一个平台即服务提供商,自 2007 年成立以来一直支持 PostgreSQL。他们提供增值功能,如完整数据库回滚(从任何指定时间恢复数据库的能力),它基于 Heroku 开发的开源软件 WAL-E。
② 2012 年 1 月,EnterpriseDB发布了 PostgreSQL 和其专有的 Postgres Plus Advanced Server 的云版本,具有自动配置故障转移、复制、负载平衡和扩展的功能。它在Amazon Web Services上运行。自 2015 年以来,Postgres Advanced Server 已作为 ApsaraDB for PPAS 提供,这是阿里云上的关系数据库即服务。
③ VMware自 2012 年 5 月起为VMware vSphere上的私有云提供了 vFabric Postgres (也称为 vPostgres。该公司于 2014 年宣布该产品的可用性终止 (EOA)。
④ 2013 年 11 月,亚马逊网络服务宣布将 PostgreSQL 添加到其关系数据库服务产品中。
⑤ 2016 年 11 月,亚马逊网络服务宣布在其云原生Amazon Aurora托管数据库产品中增加 PostgreSQL 兼容性。
⑥ 2017 年 5 月,Microsoft Azure宣布推出适用于 PostgreSQL 的 Azure 数据库。[148]
⑦ 2019 年 5 月,阿里云宣布推出 PolarDB for PostgreSQL。
⑧ Jelastic 多云 平台即服务自 2011 年以来一直提供基于容器的 PostgreSQL 支持。它还提供 PostgreSQL 的自动异步主从复制。
⑨ 2019 年 6 月,IBM Cloud宣布推出 IBM Cloud Hyper Protect DBaaS for PostgreSQL。
⑩ 2020 年 9 月,Crunchy Data 宣布推出 Crunchy Bridge。
11 2022 年 6 月,Neon.tech 宣布推出 Neon Serverless Postgres。
这个列表并不包括那些没有就此问题发表声明的无数公司。由于PostgreSQL是开源软件,因此没有任何地方对活跃实例进行计数。
这些案例展示了PostgreSQL在全球范围内的广泛应用,从金融、科技巨头到互联网服务提供商,再到全球领先的技术公司,PostgreSQL凭借其开源、高性能、高度可扩展和丰富的功能集,成为众多企业的首选数据库解决方案。
社区
PostgreSQL是一个全球项目
众所周知,PostgreSQL在各大洲都有贡献者。该项目主要使用英语。核心开发者主要分布在美洲、欧洲和亚洲。
世界各地拥有很多PostgreSQL开发者,目前国内随着基于PostgreSQL开源路线的国产数据库的蓬勃发展,不断有数据库开发者参与到PostgreSQL的贡献中,遗憾的是还没有出现在主要贡献者(Major Contributor)名单中。
PostgreSQL核心团队
核心团队是一组权限相对较小的人员。他们分别来自不同的公司;可以决定版本的发布日期;他们是立即被告知 PostgreSQL 服务器安全漏洞的人员;在社区无法达成共识的情况下,他们会解决某些争论。除此之外,所有其他决定都是在社区讨论后由整个社区共同作出的,通常是在 pgsql-hackers 邮件列表上进行讨论。另外,“Core Hackers”一词在国际社区经常使用,指的是长期参与社区的人员,这些人直接提名新成员。"黑客"可能容易引起混淆,但在这里它指的是“学术”定义。
目前的核心团队成员包括:
l Tom Lane(Crunchy Data,美国匹兹堡):可以说是经验最丰富的开发者,具有最广泛的视野,特别是在优化器方面;
l Bruce Momjian(EnterpriseDB,美国费城):于1995年启动了该项目,编写了代码(包括pg_upgrade),并积极参与倡导工作;
l Magnus Hagander(Redpill Linpro,瑞典斯德哥尔摩):开发者,尤其参与了Windows移植、pg_basebackup工具、服务器管理等工作,并担任PostgreSQL Europe主席;
l Andres Freund(Microsoft,美国旧金山):多年来为各种功能(JIT、逻辑复制、性能等)做出贡献;
l Dave Page(EnterpriseDB,英国牛津郡):pgAdmin项目负责人,负责Windows版本、服务器管理,担任PostgreSQL Europe秘书;
l Peter Eisentraut(EnterpriseDB,德国德累斯顿):引擎开发(国际化、SQL/Med等)、符合SQL标准等方面;
l Jonathan Katz(Crunchy Data,美国纽约):项目倡导、管理、补丁审查。
贡献者
目前,PostgreSQL拥有大约一百名“贡献者”,他们每天的任务分配如下:
l 开发辅助项目(Slony、pgAdmin等);
l 推广软件;
l 管理服务器基础设施;
l 撰写文档;
l 参加会议;
l 翻译工作;
l 组织本地团体。
PGDG在2006年7月在多伦多庆祝了其成立的第10周年。这次“PostgreSQL周年峰会”聚集了至少80位项目的活跃成员。 PGCon2009在渥太华聚集了180名活跃成员,2018年和2019年聚集了约220人。
-官方贡献者列表: https://www.postgresql.org/community/contributors/
谁在贡献代码?
2021年,即能够在PostgreSQL代码仓库的全部或部分区域进行编写的人员共有28位committer。这不仅涵盖了他们自己的工作,还包括其他贡献者的大部分补丁,经过讨论和验证的功能以及与PostgreSQL自身标准、文档、可移植性、简易性、安全性等相关的内容。这些其他贡献者潜在地可能是任何人。通常情况下,一个补丁在提交给committer之前会被多人审查。
开发讨论主要(但不仅限于)在pgsql-hackers邮件列表上进行。任何潜在的bug都会报告给pgsql-bugs邮件列表。 然后,在每两个月Commitfests期间,正在进行中的补丁会至少进行一次审查。由于当前系统被认为是令人满意的,因此没有bug跟踪器。
- pgsql-hackers邮件列表:https://www.postgresql.org/list/pgsql‑hackers/ - pgsql-bugs邮件列表:]https://www.postgresql.org/list/pgsql‑bugs/
Robert Haas每年都会在pgsql-hackers邮件列表上发布关于PostgreSQL代码贡献者和开发讨论参与者的分析。
– 2020/2021 : http://rhaas.blogspot.com/2022/01/who‑contributed‑to‑postgresql.html – 2019 : http://rhaas.blogspot.com/2020/05/who‑contributed‑to‑postgresql.html – 2018 : http://rhaas.blogspot.com/2019/01/who‑contributed‑to‑postgresql.html – 2017 : http://rhaas.blogspot.com/2018/06/who‑contributed‑to‑postgresql.html – 2016 : http://rhaas.blogspot.com/2017/04/who‑contributes‑to‑postgresql.html
开发者分布
Robert Haas每年都会在pgsql-hackers邮件列表上发布关于PostgreSQL代码贡献者和开发讨论参与者的分析。
用户
无法准确统计 PostgreSQL 用户的数量。然而,这个数字不断增长。参与开源社区有不同的方式。在 PostgreSQL 的情况下,您可以:
l 报告 Bug;
l 测试 beta 版本;
l 提供反馈。
为什么要参与
除了意识形态或技术动机之外,参与 PostgreSQL 项目还有许多客观原因。
向开发人员发送应用程序问题的描述显然是解决问题的最佳途径。但是,在 pgsql-bugs 上报告错误时[104],请务必准确和完整!确保您能够重现问题。
在您的环境(硬件和应用程序)中测试“候选”版本是确保您的信息系统与未来软件版本兼容的最佳保证。
反馈和专业用例证明了 PostgreSQL 的质量。这些见证有助于新用户选择 PostgreSQL,从而增强了社区。
参与翻译工作、审阅或参与支持论坛,以及一般的知识共享形式,是验证和加深您技能的绝佳方式。
[104] https://www.postgresql.org/list/pgsql‑bugs/
社区网络资源
官方社区网站网站包含有关 PostgreSQL 的信息,维护版本的文档,邮件列表讨论的存档等内容。
"Planet PostgreSQL" 是一个聚合器,汇集了核心开发者、贡献者、翻译者和 PostgreSQL 用户的博客。
PGXN 是 PostgreSQL 的等效物,类似于 Perl 的 CPAN,是一个在线的库和扩展集合,可从命令行访问。
– 官方网站:https://www.postgresql.org/
– 新闻:https://planet.postgresql.org/
– 扩展:https://pgxn.org/
官方文档
官方文档针对每个主要版本进行版本控制。与项目代码一样严格维护,可以帮助用户了解PostgreSQL不同主版本的技术细节。
- 英文文档:https://www.postgresql.org/docs/current
- 中文文档: http://www.postgres.cn/docs/14/index.html
国内社区站点
国内主要以PostgreSQL用户社区为主,主要包括PostgreSQL中文社区和中国开源软件推进联盟PostgreSQL分会(简称“中国PG分会”)。除此之外,基于PostgreSQL的主要开源分支也有独立的社区用户组。
- PostgreSQL中文社区:https://www.postgresc.cn/ - 中国PG分会:https://www.postgresqlchina.com/ - PostgreSQL问答平台:https://pgfans.cn/
讨论列表 / 公告列表
邮件列表是该项目的主要治理工具。所有社区活动(错误报告、推广、互助、决策)都可以通过这种方式访问。该项目的主要开发人员有时会亲自回复。如果您有问题或困扰,答案很可能在存档中!
要订阅或浏览档案,请访问:https://www.postgresql.org/list/。
如果您认为发现了一个 bug,您可以通过英语邮件列表 pgsql-bugs 或专用表单报告它。为了方便那些尝试回答您的人,请仔细遵循有关 bug 报告的说明:提供完整的信息,并确保可重现性。
邮件列表讨论组:
- pgsql-announce:发布公告 - pgsql-general:一般讨论 - pgsql-admin:管理员讨论 - pgsql-sql:SQL讨论 - pgsql-performance:性能讨论 - pgsql-fr-generale:法语一般讨论 - pgsql-advocacy:倡导讨论 - pgsql-bugs:错误报告
IRC
LiberaChat网络的主要入口是服务器irc.libera.chat。大多数开发者都可以在IRC上回答您的问题。
也有一些针对特定相关项目的讨论频道,例如#slony。
- LiberaChat网络 - 英文IRC: - #postgresql - #postgresql-eu
维基
维基是社区的一种工具,提供了丰富的信息。最初,维基旨在收集由开发人员编写的用于共同开发的重要功能的规范。然而,很少有开发人员以此为目的使用它。维基的使用方式已经改变,更多地由用户掌握,他们整合了大量的文档页面(有时被纳入官方文档)。维基也被活动组织者用于上传会议幻灯片。它并不是详尽的,而且不幸的是经常缺乏更新。
–PostgreSQL维基:https://wiki.postgresql.org/
PostgreSQL的未来
PostgreSQL已成为可供使用和参考的企业数据库。PostgreSQL项目得以推进,归功于越来越多参与者的贡献。PostgreSQ目前的主要发展方向包括:日益复杂的复制功能、更广泛的并行管理、对越来越大的数据量的接受程度等。
PostgreSQL注定会长存。各种规模的用户数量每天都在增加,这个项目背后不只有一个公司,有几家小公司和大公司直接参与推动了项目发展。其具有不同的经济模式和市场,确保了项目的可持续性,会有越来越多的(大型)客户选择使用。PostgreSQL的未来也取决于您的参与。
有需要PG相关资料,请联系:ywu0613