PostgreSQL 17 Beta1 发布,酷克数据再次贡献核心力量

2024-06-05 17:36

本文主要是介绍PostgreSQL 17 Beta1 发布,酷克数据再次贡献核心力量,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

得益于全球的开发者贡献,PostgreSQL已成长为一款拥有众多全球用户和贡献者、成熟稳定的开源数据库。2024年5月23日,PostgreSQL全球开发组宣布,PostgreSQL 17的首个 Beta 版本现已开放下载。本次新版本带来了众多惊喜。值得一提的是,本次发布中,酷克数据HashData研发团队参与了多出核心代码贡献,为PostgreSQL项目与社区提供了有力支持。

PostgreSQL 17功能亮点

查询和写入性能优化

PostgreSQL 17(以下称“PG17”)致力于优化和提升整体的系统性能。负责回收存储空间Vacuum进程采用了新数据结构,使得垃圾回收过程的内存使用减少,最高可以减少 20 倍,并缩短执行时间。 Vacuum 进程不再受1GB内存限制,由 maintenance_work_mem 来控制。引入流式I/O接口,提升了顺序扫描和运行 ANALYZE 的性能。新增配置参数,可控制事务、子事务和multixact缓冲区大小。PG17利用Planner统计信息和CTE(即 WITH 查询)结果中的排序顺序,进一步优化查询速度。对于包含IN子句和B-tree索引的查询,执行时间得到显著缩短。对于带有NOT NULL约束的列,PostgreSQL能够自动优化冗余的IS NOT NULL语句,同样,对于IS NULL的查询也进行了优化。此外,支持并行构建BRIN索引。在高并发写入场景下,PG17通过改进预写日志(WAL)锁管理,实现了高达两倍的性能提升。最后,新版本还引入了更多显式的SIMD指令,如AVX-512,为bit_count等函数提供了硬件加速支持。

分区和分布式工作负载增强

PG17的分区管理更为灵活,支持拆分与合并分区,并允许分区表使用身份列(Identity Column) 和排它约束(Exclude Constraints)。同时,postgres_fdw支持将EXISTS和IN子查询下推至远端服务器提升性能。PG17为逻辑复制添加了新功能,简化了高可用架构和升级流程。PG17使用 pg_upgrade升级到更高版本时,无需删除复制槽。支持Failover控制,为高可用性架构中管理 PostgreSQL 提供了更好的可控制性。PG17还允许逻辑复制的订阅者使用 hash 索引进行查找,并引入了 pg_createsubscriber 命令行工具,用于在使用物理复制的副本从库上创建逻辑复制。

开发者体验

PG17深化了 SQL/JSON 支持,新增了 JSON_TABLE 功能,支持将JSON 转换为标准 PostgreSQL 表,以及 SQL/JSON 构造函数(JSON、JSON_SCALAR、JSON_SERIALIZE)和查询函数(JSON_EXISTS、JSON_QUERY、JSON_VALUE)。此外,PG17为 jsonpath 的实现增添了更多功能,包括将 JSON 值转换为各种不同特定数据类型。MERGE 命令现支持 RETURNING 子句,便于处理修改后的行。merge_action 函数可识别 MERGE 命令的修改部分。PG17还允许使用 MERGE 命令更新视图,并新增 WHEN NOT MATCHED BY SOURCE 子句,以指定当源行无匹配时提供操作。COPY用于从PostgreSQL高效批量加载和导出数据,在PG17中,导出大行时的性能最多有两倍的提升。当源与目标编码匹配时,COPY性能亦有所提升。COPY新增 ON_ERROR 选项,允许在插入错误时继续执行。PG17还支持使用 libpq API 使用异步和更为安全的查询取消方法。PG17引入内置的排序规则提供程序,该提供程序提供与 C 排序规则类似的排序语义,但编码为 UTF-8 而非 SQL_ASCII,提供不变性保证,确保排序结果跨系统一致。

安全功能

PG17引入了新连接参数 sslnegotiation,允许 PostgreSQL 在使用 ALPN时直接进行 TLS 握手,减少一次网络往返。同时在 ALPN 注册为 postgresql。此版本还添加了用户认证时触发的新 EventTrigger,以及在 libpq 中新增 PQchangePassword API,实现客户端自动对密码取哈希,提升安全性。另外,新增了预定义角色 pg_maintain,赋予用户执行多种维护权限,并确保 search_path 在执行维护操作时的安全性。最后,支持使用 ALTER SYSTEM 设置系统无法识别的未定义的配置参数。

备份与导出管理

PG17可以使用 pg_basebackup进行增量备份,并增加了一个新的实用工具 pg_combinebackup,用于备份恢复过程中将备份合并。该版本为 pg_dump新增了一个参数项 --filter,允许指定一个文件来进一步指定在 dump 过程中要包含或排除哪些对象。

监控

EXPLAIN命令现增加SERIALIZE和MEMORY选项,分别展示数据序列化耗时和优化器内存使用情况。同时,EXPLAIN还能显示I/O读写耗时。PostgreSQL 17统一了pg_stat_statements中CALL的参数,减少了频繁调用的存储过程记录数。此外,VACUUM进度报告现在会显示索引垃圾回收的进度。PG17还引入了一个新视图,pg_wait_events,提供关于等待事件的描述,可以与 pg_stat_activity 共同使用,以便深入了解活动会话出现等待的原因。此外,pg_stat_bgwriter视图中的一些信息,现在被拆分到新的 pg_stat_checkpointer视图中了。

HashData研发团队贡献核心力量

HashData研发团队一直活跃于PostgreSQL社区。在PostgreSQL 15、16等多个版本中,都能看到HashData研发团队以代码编写、审核、检测等方式参与了数十项开源贡献,为PostgreSQL性能改进和提升提供了有力支持。在最新发布的PG17版本中,HashData研发团队也参与了几项重要贡献:示例一:极具实用性的全新feature,极大地提升了批量导入数据的便捷性0b2b34784d93696008069ca7bf084923.jpegHashData研发团队贡献信息值得一提的是,这是Hashdata第一次有feature进入社区代码,意味着我们的技术能力得到了更广泛的认可与关注。COPY FROM命令是PostgreSQL中用于批量导入数据的强大工具。在数据处理过程中,根据数据和用户定义情况,某些列可为空值。用户可以为这些列设置默认选项,强制为空或者不为空。以往,用户需要逐一设置每一列的空值设置,这在处理大量列(例如,PostgreSQL默认支持的上限是1600列)时变得极为繁琐。全新的feature 为COPY FROM 命令增加FORCE_NULL *和FORCE_NOT_NULL *选项,允许用户轻松的为数据的所有列设置强制为空,或不为空,极大地提高了数据导入的效率。

  • 示例二:代码重构,提升了代码的简洁性和执行的高效性

163b7fa6bb3d4a5cddbfe8f80344c279.jpegHashData研发团队贡献信息PostgreSQL支持LIMIT、FETCH等语句,这些语句在内部通过不同的枚举选项来实现。然而,HashData团队在深入阅读和理解代码后,发现LIMIT_OPTION_DEFAULT这一选项实际上是多余的,PostgreSQL的解析树已经能够充分表达相应的逻辑。经过严格的验证测试,清理了这部分不必要的代码,提升了PostgreSQL代码的简洁性和执行的高效性。此外,HashData的研发团队还积极参与了代码的Review工作,凭借严谨的态度和专业的技能,为PostgreSQL新版本的稳定性和性能提供了有力保障。

结语

在全球开源社区的共同努力下,PostgreSQL已经发展成为一款功能强大、稳定可靠的开源数据库,广泛应用于各行各业。随着本次beta版本的发布,我们看到了PostgreSQL 17在性能优化、功能增强和安全提升等方面的显著进步。酷克数据HashData研发团队饮水思源,通过代码贡献、PG技术讲解等方式,不断以开源精神和技术实力回馈社区。 凭借团队对技术创新的不懈追求,酷克数据打造了一款面向分析和AI场景的下一代统一型开源数据库产品CloudberryDB,搭载了PostgreSQL 14.4 内核。CloudberryDB既能满足单机本地快捷部署,也能通过插件自由扩展为云原生架构,具备高弹性、高并发、湖仓一体化、扩缩容灵活等优势。同时,CloudberryDB支持丰富的数据类型和数仓/AI混合负载,可开展SQL分析、机器学习、全文检索、HTAP等任务,通过数据存储加密、联合⾝份验证等技术手段,帮助企业更方便地自建高效稳定的数据底座。f19a6eb7c650fa2619fc4c33c071bdd6.jpegCloudberryDB灵活部署形态
95db6aed842e53fe576522c6b27870de.jpegCloudberryDB产品兼容生态
CloudberryDB正在以国际标准、高点定位、全球眼光的运营理念,构建开放、友好、中立的开源社区。我们也期待有更多的开源爱好者加入我们,为开源世界贡献我们的一份力量。CloudberryDB GitHub 地址:https://github.com/cloudberrydb/cloudberrydb,欢迎大家访问体验。
参考链接:1、PG 17 Beta1版发布官方新闻:https://www.postgresql.org/about/news/postgresql-17-beta-1-released-2865/2、PG 17 Beta1版发布说明:https://www.postgresql.org/docs/17/release-17.html3、PG 17 Beta1版下载地址:https://www.postgresql.org/download/

这篇关于PostgreSQL 17 Beta1 发布,酷克数据再次贡献核心力量的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1033722

相关文章

17.用300行代码手写初体验Spring V1.0版本

1.1.课程目标 1、了解看源码最有效的方式,先猜测后验证,不要一开始就去调试代码。 2、浓缩就是精华,用 300行最简洁的代码 提炼Spring的基本设计思想。 3、掌握Spring框架的基本脉络。 1.2.内容定位 1、 具有1年以上的SpringMVC使用经验。 2、 希望深入了解Spring源码的人群,对 Spring有一个整体的宏观感受。 3、 全程手写实现SpringM

【服务器运维】MySQL数据存储至数据盘

查看磁盘及分区 [root@MySQL tmp]# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical)

SQL Server中,查询数据库中有多少个表,以及数据库其余类型数据统计查询

sqlserver查询数据库中有多少个表 sql server 数表:select count(1) from sysobjects where xtype='U'数视图:select count(1) from sysobjects where xtype='V'数存储过程select count(1) from sysobjects where xtype='P' SE

数据时代的数字企业

1.写在前面 讨论数据治理在数字企业中的影响和必要性,并介绍数据治理的核心内容和实践方法。作者强调了数据质量、数据安全、数据隐私和数据合规等方面是数据治理的核心内容,并介绍了具体的实践措施和案例分析。企业需要重视这些方面以实现数字化转型和业务增长。 数字化转型行业小伙伴可以加入我的星球,初衷成为各位数字化转型参考库,星球内容每周更新 个人工作经验资料全部放在这里,包含数据治理、数据要

如何在Java中处理JSON数据?

如何在Java中处理JSON数据? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨在Java中如何处理JSON数据。JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,在现代应用程序中被广泛使用。Java通过多种库和API提供了处理JSON的能力,我们将深入了解其用法和最佳

WordPress网创自动采集并发布插件

网创教程:WordPress插件网创自动采集并发布 阅读更新:随机添加文章的阅读数量,购买数量,喜欢数量。 使用插件注意事项 如果遇到404错误,请先检查并调整网站的伪静态设置,这是最常见的问题。需要定制化服务,请随时联系我。 本次更新内容 我们进行了多项更新和优化,主要包括: 界面设置:用户现在可以更便捷地设置文章分类和发布金额。代码优化:改进了采集和发布代码,提高了插件的稳定

两个基因相关性CPTAC蛋白组数据

目录 蛋白数据下载 ①蛋白数据下载 1,TCGA-选择泛癌数据  2,TCGA-TCPA 3,CPTAC(非TCGA) ②蛋白相关性分析 1,数据整理 2,蛋白相关性分析 PCAS在线分析 蛋白数据下载 CPTAC蛋白组学数据库介绍及数据下载分析 – 王进的个人网站 (jingege.wang) ①蛋白数据下载 可以下载泛癌蛋白数据:UCSC Xena (xena

AI赋能天气:微软研究院发布首个大规模大气基础模型Aurora

编者按:气候变化日益加剧,高温、洪水、干旱,频率和强度不断增加的全球极端天气给整个人类社会都带来了难以估计的影响。这给现有的天气预测模型提出了更高的要求——这些模型要更准确地预测极端天气变化,为政府、企业和公众提供更可靠的信息,以便做出及时的准备和响应。为了应对这一挑战,微软研究院开发了首个大规模大气基础模型 Aurora,其超高的预测准确率、效率及计算速度,实现了目前最先进天气预测系统性能的显著

JavaWeb系列六: 动态WEB开发核心(Servlet) 上

韩老师学生 官网文档为什么会出现Servlet什么是ServletServlet在JavaWeb项目位置Servlet基本使用Servlet开发方式说明快速入门- 手动开发 servlet浏览器请求Servlet UML分析Servlet生命周期GET和POST请求分发处理通过继承HttpServlet开发ServletIDEA配置ServletServlet注意事项和细节 Servlet注

中国341城市生态系统服务价值数据集(2000-2020年)

生态系统服务反映了人类直接或者间接从自然生态系统中获得的各种惠益,对支撑和维持人类生存和福祉起着重要基础作用。目前针对全国城市尺度的生态系统服务价值的长期评估还相对较少。我们在Xie等(2017)的静态生态系统服务当量因子表基础上,选取净初级生产力,降水量,生物迁移阻力,土壤侵蚀度和道路密度五个变量,对生态系统供给服务、调节服务、支持服务和文化服务共4大类和11小类的当量因子进行了时空调整,计算了