瀚高研究院 | 7个维度!PostgreSQL生态展望:2024路向何方?
从PostgreSQL数据库“老炮”厂牌EDB回归Gartner魔力象限,到最新的DB-Engines排名监测中,PostgreSQL脱颖而出,荣膺“2023年度数据库”。多年来,PostgreSQL生态历经持续而稳健的改进,始终站在数据库技术应用创新最前沿,如今已成为数据库领域最为成功的开源项目之一。展望2024,我们相信PostgreSQL生态系统将继续繁荣发展,不断壮大。我们有理由期待更多创新性的产品和服务涌现,为用户提供更多元化的选择,带来更加卓越的数据库应用体验。
“PostgreSQL将走向何方?”这是一个引人深思的问题,也是一个我们不断听到并向内求索的问题。从本质上讲,PostgreSQL未来发展不仅仅局限于数据库引擎核心功能的改进,它还涉及到整个社区生态的演变。瀚高股份作为PostgreSQL在中国领域的先行者和核心参与者,始终密切关注行业用户在PostgreSQL应用领域的需求与最新实践。希望此文能够激发更深入的讨论,为探讨PostgreSQL的未来发展提供更有价值的参考。
1
持续提升可用性与性能表现
对于用户而言,充分挖掘和释放PostgreSQL中潜藏的性能“宝藏”,能够最大限度地发挥其投资效益。通过采用数据分区、建立副本和动态资源池等策略机制,IT团队可有效增强PostgreSQL系统的扩展性,简化维护工作,并获得增强的冗余,从而防止数据丢失或系统故障。高效的资源分配策略可确保数据库系统无缝适应需求波动,保持持续的响应能力,为用户提供稳定、高效的服务。
2
强化安全机制与开发者特性支持
3
打造更加开放及透明的社区生态
4
周边工具持续增强与完善
此外,与大数据和人工智能等领域的整合也将成为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
多模数据库与向量数据库的崛起
7
更全面的SQL:支持2023最新SQL标准
作为开源数据库的佼佼者,PostgreSQL对SQL:2023的支持也在不断增强。目前,PostgreSQL已经实现了大部分SQL:2023的功能,但仍有一些功能需要进一步完善。在这一方面,Peter Eisentraut在2023年已经做了大量的工作,并给出了详细的说明。有兴趣深入了解这一领域的朋友,可以搜索相关资料,例如:《PostgreSQL and SQL:2023》一文。在新的一年,PostgreSQL会继续加强对SQL标准的支持,特别是在JSON方面的功能上。
(一)增量备份
与传统的完整备份和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
小结
展望2024,结合PostgreSQL16新增的众多面向分析和事务工作负载的新功能,如改进的分片、有利于运行复杂聚合和窗口查询的并行操作支持、新的逻辑复制功能,以及丰富的扩展加速工作负载性能等,都将极大地提升系统整体性能与可用性,同时也将为开发者提供更大的自由度和更广阔的创新空间。
关注公众号,了解更多社区动态
IvorySQL内核的Serverless数据库——HGNeon适配国内云对象存储
7个工具!让Oracle 迁移至 PostgreSQL成为可能!
4步上手Meson:让PostgreSQL 16 构建更现代化!
IvorySQL
一款开源的兼容Oracle的PostgreSQL