从PostgreSQL数据库“老炮”厂牌EDB回归Gartner魔力象限,到最新的DB-Engines排名监测中,PostgreSQL脱颖而出,荣膺“2023年度数据库”。多年来,PostgreSQL生态历经持续而稳健的改进,始终站在数据库技术应用创新最前沿,如今已成为数据库领域最为成功的开源项目之一。展望2024,我们相信PostgreSQL生态系统将继续繁荣发展,不断壮大。我们有理由期待更多创新性的产品和服务涌现,为用户提供更多元化的选择,带来更加卓越的数据库应用体验。
“PostgreSQL将走向何方?”这是一个引人深思的问题,也是一个我们不断听到并向内求索的问题。从本质上讲,PostgreSQL未来发展不仅仅局限于数据库引擎核心功能的改进,它还涉及到整个社区生态的演变。瀚高股份作为PostgreSQL在中国领域的先行者和核心参与者,始终密切关注行业用户在PostgreSQL应用领域的需求与最新实践。希望此文能够激发更深入的讨论,为探讨PostgreSQL的未来发展提供更有价值的参考。
1 持续提升可用性与性能表现
在未来的发展中,PostgreSQL将继续提升数据库系统性能。通过不断优化查询、改进索引策略和调整配置参数等,减少响应时间,提高系统资源的使用效率,确保数据库在各种工作负载下都能保持高性能。同时,可用性作为关键需求之一,PostgreSQL也将不断深化对其的支持。在高可用特性支持方面,会更进一步提升,以满足更多有严苛可用性需求的场景,为用户提供更加顺畅的数据迁移和应用升级体验。
对于用户而言,充分挖掘和释放PostgreSQL中潜藏的性能“宝藏”,能够最大限度地发挥其投资效益。通过采用数据分区、建立副本和动态资源池等策略机制,IT团队可有效增强PostgreSQL系统的扩展性,简化维护工作,并获得增强的冗余,从而防止数据丢失或系统故障。高效的资源分配策略可确保数据库系统无缝适应需求波动,保持持续的响应能力,为用户提供稳定、高效的服务。
2 强化安全机制与开发者特性支持
在安全性方面,PostgreSQL将持续加强其防御能力,特别关注对透明数据加密(TDE)的原生支持。此外,PostgreSQL还将支持其他身份验证方式/机制(如OIDC),以及探索通用授权模式的实施。值得一提的是,瀚高股份作为PostgreSQL领域的领军企业,紧随PostgreSQL生态的发展,近日发布了最新版本的数据库管理系统V9.0。该系统具备多层安全防护机制,从角色增强、角色认证、安全审计和透明加密等多个方面着手,最大程度地保障了数据库的访问安全和数据存储安全,为用户提供了坚实可靠的数据保护。
在开发者特性方面,PostgreSQL将聚焦于完善SQL/JSON标准,以及对一些无法通过扩展实现的开发者特性的直接支持,如SQL标准特性。除了不断优化SQL语法,PostgreSQL还会在支持新型工作负载的创新、更全面的存储过程语言等方向发力,以满足开发者的需求,提高开发效率和应用程序的可靠性。
3 打造更加开放及透明的社区生态
PostgreSQL开源生态已经成为数据库管理系统创新发展的强大引擎。其独特的开源模式和丰富的社区资源也为国内数据库产业发展提供了强有力的支持。通过与PostgreSQL的深度融合和持续改进,以及深入研究和掌握PostgreSQL16最新内核等,基于PostgreSQL的开源数据库系统能够显著降低数据库迁移成本和风险。同时,它高效地整合多样化扩展,帮助用户更好地了解和选择合适的扩展,从而进一步“反哺”生态,推动 PostgreSQL的广泛应用。在Oracle兼容性、易用性、更强的容器化和云端环境适应度,以及高水平的SQL和PL/SQL兼容性方面,基于PostgreSQL的开源数据库系统将继续取得创新突破,推动PostgreSQL的更广泛的应用和持续创新发展。
作为PostgreSQL的重要分支,瀚高股份为满足国内市场对去“O”的迫切需求,重磅推出了基于PostgreSQL开发并兼容Oracle特性的开源数据库--IvorySQL3.1版本。这一版本基于PG16.1最新内核,实现了对Oracle数据库的更高度兼容,为用户提供了更加丰富和灵活的数据处理解决方案。
在未来的发展中,基于PostgreSQL的开源数据库系统生态有望进一步扩展,延伸至涵盖与云相关的开源项目。例如,在Kubernetes环境中实现自动化部署和运维,提供在容器环境中运行所需的各种工具和模板,以及无服务器解决方案,为用户提供更加便捷、高效和灵活的数据库服务。
4 周边工具持续增强与完善
PostgreSQL在不断拓展其核心功能和提升性能的同时,周边工具的发展和跟进同样至关重要。这包括更强大的备份工具、更精准的监控工具、数据迁移工具,以及适用于云原生部署和管理高级工具或插件等。
此外,与大数据和人工智能等领域的整合也将成为PostgreSQL的重要发展方向, 更多与AI相关的PostgreSQL插件或工具,例如智能语句优化和自动数据库调优等,已经逐渐融入PostgreSQL的生态圈中。这些工具和功能将为开发者提供更多的选择和灵活性,进一步增强PostgreSQL在各种应用场景中的竞争力。
5 PostgreSQL 扩展(Extension)生态的变革
自2010年以来,PostgreSQL插件(扩展)网络——PostgreSQL Extension Network(简称PGXN)一直是PostgreSQL的插件中心分发系统。然而,这个系统也暴露出一些明显的不足。例如,插件很难发现,质量评价缺乏标准,没有集中的包存储库,以及其简单的用户界面明显落后于时代等。
随着PGXN的创始人Adam Hendel加入到Tembo公司(Trunk 扩展注册管理 https://pgt.dev/ 背后的公司),一个由社区的项目已经开始策划,旨在解决PGXN存在的问题。该项目的目标是希望成为所有PostgreSQL扩展的规范记录源,提供发布功能、增强的查找功能、二进制打包以及全面的开放API。我们期待在扩展网络方面看到更新的变化和进步。
参考链接:
https://tembo.io/blog/welcoming-david-wheeler
6 多模数据库与向量数据库的崛起
PostgreSQL通过其可插拔的数据类型、函数、执行器/优化器以及近两年新引入的可插拔索引和表访问方法,在数据库领域取得了创新性的进展。这种创新设计使得Postgres能够灵活应对各种数据库使用场景。此外,PostgreSQL的可扩展性还衍生了许多基于特定模式的数据库解决方案,例如PostGIS、TimescaleDB、Age、Citus等,这些衍生数据库在地理信息系统、时序数据、图数据处理和分布式数据库等领域为用户提供了更多元化、更优质的选择,满足了不同场景下的数据处理需求。
去年,AWS开源的Pg_Vector为PostgreSQL带来了向量数据库的概念,这一举措为Postgres在人工智能技术领域的发展提供了强大动力。随着大型语言模型(LLM)及其上层服务(如ChatGPT)的广泛流行,向量数据库已成为2023年数据库的焦点。这种技术的融入不仅促进了PostgreSQL在传统数据库功能之外的发展,也使其在处理复杂查询和AI应用方面的能力得到显著提升。因此,PostgreSQL不仅在传统数据管理领域保持领先地位,同时也在新兴的数据库技术领域中发挥着越来越重要作用。
7 更全面的SQL:支持2023最新SQL标准
2023年正值SQL(Structured English Query Language)诞生50周年的重要时刻。尽管SQL的历史悠久,但其使用和功能在过去十年中得到了显著的增长与关注。2023年,SQL的最新版本是SQL:2023,这一版本带来了众多新特性,如属性图查询(SQL/PGQ)和多维数组(SQL/MDA)等。
作为开源数据库的佼佼者,PostgreSQL对SQL:2023的支持也在不断增强。目前,PostgreSQL已经实现了大部分SQL:2023的功能,但仍有一些功能需要进一步完善。在这一方面,Peter Eisentraut在2023年已经做了大量的工作,并给出了详细的说明。有兴趣深入了解这一领域的朋友,可以搜索相关资料,例如:《PostgreSQL and SQL:2023》一文。在新的一年,PostgreSQL会继续加强对SQL标准的支持,特别是在JSON方面的功能上。
参考链接:
https://peter.eisentraut.org/blog/2023/04/18/postgresql-and-sql-2023
2024 年即将发布的PostgreSQL17版本正在紧锣密鼓地开发中。目前,社区已经完成了3个CommitFest(43,44,45),并且正在进行CommitFest 46。对于有兴趣参与的开发者,可以前往Commit Fest系统查看并协助审阅相关代码。在1月底结束后,将启动新的CommitFest 47。
(一)增量备份
与传统的完整备份和WAL(预写日志)不同,增量备份的优势在于仅保存自上次全备份以来发生变化的数据部分。这一做法不仅显著提高了备份效率,也极大缩短了恢复所需的时间。在PostgreSQL的历史上,其增量备份及指定时间点恢复功能一直受到诸多质疑。值得庆幸的是,PostgreSQL17终于将此功能纳入核心,通过引入WAL汇总器( WAL summarizer)进程,精确地识别数据目录中发生变化的区域。这样一来,增量备份仅需复制这些部分,而非整个数据文件,从而在频繁更新的情境下展现出极高的效率。测试结果显示,与传统的WAL恢复相比,增量备份能显著缩短恢复时间。我们相信,这一新特性将在PostgreSQL17的未来版本中得到进一步优化和应用。
代码提交:
🔗https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=dc212340058b4e7ecfc5a7a81ec50e7a207bf288
🔗https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=174c480508ac25568561443e6d4a82d5c1103487
参考链接:
《Waiting for Postgres 17: Incremental base backups》
《Incremental Backups: Evergreen and Other Use Cases》
(二)动态共享内存注册表
在之前的PostgreSQL版本中,使用共享内存的最直接方法是在服务器启动时通过shmem_request_hook请求共享内存。然而,这种方法需要在共享预加载库中明确指定所需的库。不过PostgreSQL17引入了一个动态共享内存注册表,这一改进可以避免在服务器启动时才能请求。这一新特性为那些希望更灵活地访问PostgreSQL共享内容的开发人员提供了一个强大的工具。
https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=8b2bcf3f287c79eaebf724cba57e5ff664b01e06
(三)COPY命令的增强
在PostgreSQL16及更早的版本中,使用COPY命令从文件导入数据到表中时,如果遇到任何无法写入目标表的数据行,整个加载过程会被立即中止,并且没有任何数据被成功导入。值得一提的是,PostgreSQL17引入了ON_ERROR选项,允许用户指定如何处理这些不符合条件的数据行,即停止加载过程(stop)或忽略错误并继续加载其他数据行(ignore)。这一改进在处理大量数据且数据中可能包含一些格式错误或异常值的场景中显得尤为重要。
在此,我们仅简单介绍了PostgreSQL17的一些功能。未来,我们计划推出一个关于PostgreSQL17功能列表的专栏,并会持续更新。
8 小结
毫无疑问,PostgreSQL在2023度过了不平凡的一年,“35+”的PostgreSQL再度起航,成为数千新应用程序的数据服务骨干,蓬勃涌现创新生命力。在Stack Overflow的2023年开发者调查中,PostgreSQL更是力压群雄,超越了数据库巨头MySQL、SQL Server和MongoDB,成为了最受开发者欢迎的数据库。
展望2024,结合PostgreSQL16新增的众多面向分析和事务工作负载的新功能,如改进的分片、有利于运行复杂聚合和窗口查询的并行操作支持、新的逻辑复制功能,以及丰富的扩展加速工作负载性能等,都将极大地提升系统整体性能与可用性,同时也将为开发者提供更大的自由度和更广阔的创新空间。
文/瀚高基础软件股份有限公司副总裁 吕新杰博士
文/瀚高基础软件股份有限公司研究院负责人 周宝峰