今年的PostgreSQL生态大会将在11月3号-5号召开,我今年报了一个演讲题目是和生态相关的,因此这些天也在思考如何写好这个演讲稿。昨天刚从出差的现场回到南京,下午马上要出发去参加本周的两个和数据库生态建设有关的会议,因此这两天考虑得比较多的还是数据库生态方面的问题。今天早上就简单聊聊PG的生态吧。
大家可能都知道,十多年前的互联网生态促成了MySQL成为了目前最流行的开源数据库。在某段时间里,MySQL几乎成为了开源数据库的代名词,而PostgreSQL被业界所看重要并获得流行比MySQL晚得多。随着行业用户大量使用开源数据库,很多用户发现MySQL并非自己想象得那么完美,在一些应用场景上能力尚显不足。大家抬头一看,另外一个开源数据库近年来发展得十分迅速,似乎可以替代MySQL,满足一些MySQL支撑得不太好的应用场景。
这个数据库就是PostgreSQL,一个目前在DB-ENGINE数据库热度排行榜上排名第四,并且几乎每个月都在增长的开源数据库产品。

上面图中走出最漂亮的那条橙色曲线的就是PostgreSQL。数据库的流行度与其生态是紧密相关的。二十年前广泛的用户生态与第三方服务生态造就了Oracle的成功,让Oracle与Informix、sybase、db2、sql server等群雄的争霸中成功突围。Oracle的成功秘诀是开放,在互联网上随意下载,在科研与研发领域免费使用,在全球开设Oracle大学,与职业技术学院合作开展Oracle学院项目等生态工程让Oracle在这场竞争中立于不败之地。
近些年PG的热度大幅提升依然是依靠了PG的生态。作为一个开源数据库产品,其实开源生态是PG热度的最大贡献者。不过仅仅依靠开源依然是不够的,20年过去了,商用的Oracle依然雄踞DB-ENGINE数据库热度榜之首就很能解释这个问题了。让PG的热度持续增长的根本原因还是其生态方面的优势。
首先是PG的开源协议,BSD开源协议不仅仅十分友好和宽泛,与GPL也保持十分友好的兼容。这种开放的开源协议一方面让PG数据库可以与大量的GPL开源协议的开源产品深度融合,碰撞出火花。另外一方面,BSD对商业使用PG代码的宽容让大量的商业目的的项目也会首选PG。受益于BSD的开放性,基于PG代码的商用数据库产品和开源数据库产品的增长均十分迅速,这对于PG数据库的生态与热度的推动作用十分巨大。
在集中式数据库领域,亚马逊、谷歌、微软、阿里、腾讯等互联网巨头都在其云原生产品中推出了PG生态产品。EDB、PostgresqlPro、Neondb等数据库厂商也推出了PG生态的企业版产品。而国内的基于PG生态的国产数据库更是百花齐放。人大金仓、优炫、神州通用、瀚高、亚信、恒生电子等国产数据库厂商都以PG开源代码为基础,发展了自己的商用数据库产品。
华为基于PG 9.2.4核心推出了一个新的开源数据库产品openGauss,虽然推出的时间不长,不过现在已经形成了巨大的生态。海量、云和恩墨、南大通用、神舟通用、NCTI、中国移动、中国联通、沐融信息(MuDB)等都已经纷纷加入openGauss大家庭。openGauss虽然目前与PostgreSQL开源社区的代码已经分离,成为一个全新的分支。不过在使用习惯、SQL兼容性、可观测性能力的兼容性方面,二者都有很强的兼容性。PG开源社区版用户可以很方便的迁移到openGauss,其使用经验可以最大限度的保留。同时openGauss社区依然在紧密关注PG社区的发展,PG的一些新思想,新功能很快也会被openGauss所吸收。
在分布式交易型数据库方面,90年代末日本的以NTT为代表的企业就基于PG内核开始发展分布式交易型数据库,最终形成了PGXC/PGXL开源项目。这个开源项目对于PG生态的分布式数据库来说影响巨大。目前在这方面已经形成了大量的兼容PG语法的分布式交易型数据库。比如YugabyteDB、Gaussdb、KunlunDB、腾讯TBase、虚谷数据库等。
在PG生态中也不乏分析型数据库。最著名的Greenplum就是基于PG的,其开源版本GPDB目前在国内也有很广泛的应用。近些年基于GPDB的HASHDATA也发展迅速。华为的Gaussdb DWS也是生态中的佼佼者。阿里云的Hologres这两年也是风头很盛。
在SQL ON HADOOP方面,hawq是PG生态中的顶流产品,当HADOOP十分热的时候就有很多企业在使用这个开源项目。偶数科技基于hawq也发展了其商业版的数据库产品。Hologres在SQL ON Hadoop方面给云上用户以更好的选择。
PG在产品生态方面的丰富性为PG数据库在未来获得更好的发展奠定了基础。不过产品生态仅仅是PG生态的一部分。产品生态的丰富性会影响PG的运营服务生态,用PG生态产品的用户会发现,这些产品的运维、优化、操作具有较强的相似性。这一点是PG的运营与服务生态高速发展的引擎。这些用户、能够从中获利的生态厂商多了,数据库生态才会更加丰富。
除了外部的生态,PG内部的生态也十分优秀,其开放的插件架构让大量的企业可以为PG增加功能,以满足用户不同的业务场景需求。这一点也导致了PG的索引几乎是目前主流数据库中最为丰富的,而索引对于大型企业级应用的重要性应该是很容易理解的。通过插件来提供核心外的重要功能,让PG代码的快速迭代能力大大提升。谷歌基于PG插件架构开发了著名的AlloyDB就是十分重要的佐证。
马上要到上班时间了,今天虽然7点20就到办公室了,这个话题还是没有谈得很透彻。关于PG生态的问题,我想说的还有很多,不过没关系,在今年的PG生态大会上,我会有一个这方面的分享,届时欢迎大家来参与思考与讨论。