Postgres 16及以上版本新增了pg_input_is_valid函数,用于验证输入数据是否符合特定类型(如整数、日期等)。通过在临时表中检查数据,可以在导入前识别并修正错误行,从而确保数据格式正确,提高数据处理效率。
pg_query发布了一个基于Postgres 16解析器的新版本,其中包括支持在Windows上运行和解析新的Postgres语法。该库可以解析SQL查询并返回Postgres解析树。它还引入了查询指纹以将查询分组在一起,并支持反解析以将查询升级到Postgres 16 SQL/JSON语法。新版本还包括对解析PL/pgSQL表达式的支持。社区在pg_query的发展中发挥了重要作用,团队正在考虑将pg_query的部分功能上游合并为Postgres的核心部分。
Postgres 16引入了逻辑复制功能,支持从备用服务器进行数据流转。Debezium作为CDC工具,可以实时获取Postgres备用服务器的变更事件。通过pgoutput插件创建发布以配置要发布的表的变更。尽管逻辑复制有所增强,但仍缺乏故障转移槽的支持,需要手动同步主备用槽以避免数据丢失。希望未来版本能支持此功能。
Postgres 16引入了从备用服务器进行逻辑复制的功能,支持负载分配和高可用性。逻辑复制允许选择性地复制数据,适用于不同版本的Postgres,尽管存在DDL变更不被复制的限制,但为数据工程提供了灵活性,特别是在使用Debezium等工具进行变更数据捕获时。
Citus 12.1支持Postgres 16,包括对基于模式的分片、负载均衡和分布式Citus集群中的pg_stat_io的增强。此外,它还支持Postgres 16的新SQL / JSON标准一致聚合函数,以及COPY FROM的DEFAULT选项和自定义ICU排序规则的传播。Citus 12.1还允许在外部表上使用TRUNCATE触发器,以及在CREATE TABLE,VACUUM和ANALYZE中的新选项。Citus 12.1还添加了支持从使用标识列的本地表创建分布式模式表的功能。
Postgres 16新增了JSON数据类型检查、SQL标准JSON函数和与JSON交互的新功能,使其成为JSON的一流数据库。
Postgres 16新增了一个名为require_auth的连接参数,允许libpq客户端定义可接受的认证类型列表,以保护免受降级攻击。该功能可与环境变量PGREQUIREAUTH一起使用,并映射到相应的认证请求代码。
完成下面两步后,将自动完成登录并继续当前操作。