本文介绍2021年云原生数据仓库AnalyticDB PostgreSQL版存储弹性模式的内核功能发布记录。

您可以在云原生数据仓库AnalyticDB PostgreSQL版控制台将实例升级至最新发布的小版本。升级小版本的具体操作,请参见版本升级

2021年12月06日(V6.3.6.1)

类别 功能 功能描述 相关文档
新增 物化视图 新增物化视图自动查询改写功能,可以大幅提升JOIN、聚合函数、子查询、CTE以及高并发场景下SQL的执行性能。
支持在分区表中使用实时物化视图。 实时物化视图
分区表 支持使用INSERT ON CONFLICT语句在分区表中覆盖写入数据。 使用INSERT ON CONFLICT覆盖写入数据
支持使用COPY ON CONFLICT语句在分区表中覆盖导入数据。 使用COPY ON CONFLICT覆盖导入数据
定时任务 pg_cron插件升级至1.4版本,新增如下功能:
  • 支持跨库执行定时任务。
  • 支持变更已有定时任务。
  • 支持设置定时任务名称。
  • 新增cron.job_run_details表用于记录定时任务的执行情况。
设置定时任务(pg_cron)
计算节点变配过程中可读 V6.3.6.1之前版本,计算节点在变配过程中会对每张表进行数据重分布,存在表不可读写的限制;V6.3.6.1及以后版本,计算节点变配过程中所有表可读,且仅重分布的表不可写,从而降低计算节点变配对您业务的影响。
缺陷修复 修复部分场景下出现Unexpected gang size error报错的问题。
修复部分场景下数据库频繁出现FATAL: reader could not find writer proc entry报错的问题。
修复部分场景下Laser执行引擎Left Join结果异常的问题。
修复基础版实例备份恢复时synchronous_standby_names参数错误导致恢复失败的问题。

2021年10月13日(V6.3.5.2)

类别 功能 功能描述 相关文档
新增 自动增量排序 自动增量排序(AutoMerge)是AnalyticDB PostgreSQL版在后台运行的数据自动排序进程。自动增量排序会定期巡检表的数据状态,对新增无序数据进行排序,并与已有有序数据进行增量归并。

自动增量排序仅对设置了排序键的AO行存表和AOCS列存表生效。

自动增量排序
闲置连接自动关闭 为避免查询完成后连接未断开导致大量闲置(idle)连接长时间存在的情况,AnalyticDB PostgreSQL版推出闲置连接自动关闭功能。
说明 闲置连接默认情况下闲置6小时后将会自动断开。
优化 排序加速计算 支持在数据增量更新的情况下使用排序加速计算。 排序加速计算
Laser引擎
  • 优化Laser引擎在Master节点的执行性能。
  • 优化Laser在大批量数据Order By场景下的网络表现,提升执行性能。
  • 优化Count Distinct场景执行性能。
  • 修复Hash Join在部分场景下,访问异常指针导致执行错误的问题。
  • 修复Hash Left/Right/Full Join在部分场景下结果异常的问题。
  • 修复AOCS表中位图索引扫描(BItmap Index Scan)执行时间异常的问题。
  • 修复在分区表数量多的情况下,执行异常终止的问题。
Laser计算引擎的使用
用户最大连接数 AnalyticDB PostgreSQL版用户最大连接数提升:
  • 2C16G规格由300提升至550。
  • 4C32G规格由300提升至750。
  • 8C64G规格由400提升至950。
约束与限制
AUTO VACUUM和AUTO ANALYZE Multi-Master架构的AnalyticDB PostgreSQL版实例支持AUTO VACUUM和AUTO ANALYZE。
实时物化视图
  • 实时物化视图支持INSERT/COPY ON CONFLICT DO UPDATE语法。
  • 修复实时物化视图多Master场景不正确刷新的问题。
  • 修复实时物化视图不支持复制表的问题。
  • 修复实时物化视图UPSERT支持的问题。
实时物化视图
PL/Java PL/Java功能默认关闭。 使用PL/Java UDF
缺陷修复 修复列名包含totalrowstotaldeadrows的表进行ANALYZE时报错的问题。
修复OSS外表Parquet格式文件中INT96类型转换至TIMESTAMP类型出错的问题。
修复新建集群进行主备切换后,因无法找到归档程序或无法导入Python模块,导致归档异常问题。
修复OSS外表扫描时,有可能出现内存泄漏问题。

2021年07月13日(V6.3.4.0)

类别 功能 功能描述 相关文档
新增 Laser引擎 AnalyticDB PostgreSQL版默认打开Laser引擎。 Laser计算引擎的使用
并行查询 AnalyticDB PostgreSQL版单表查询默认打开并行查询。 并行查询
排序加速计算 当您执行SORT <tablename>后,系统会对表数据进行排序,当数据完成排序后,AnalyticDB PostgreSQL即可利用数据的物理顺序,将SORT算子下推到存储层进行计算加速。

该特性可以基于SORT KEY加速SORT、AGG、JOIN算子。

排序加速计算
备份恢复 Multi-Master架构的AnalyticDB PostgreSQL版支持备份恢复功能。
查询内核版本 新增GUC参数用于查询AnalyticDB PostgreSQL版内核版本,语句如下:
show adbpg_version;
查看内核小版本
优化 实时物化视图 实时物化视图性能增强。聚合操作MAX和MIN支持了DELETE和UPDATE;支持对基表的变更语句使用CTE。 实时物化视图
多Master实例分布式事务性能增强 多Master实例,每个Master节点在执行分布式事务时,不需要向GTM请求分布式事务ID,可以直接本地生成。这样可以消除大并发情况下GTM的单点瓶颈,提升分布式事务能力,特别是高并发导入场景的性能。
缺陷修复 修复同一事务内多次TRUNCATE AO表后abort事务,导致备机checkpoint进程PANIC错误的问题。
修复多Master实例在Secondary Master上的同一个Session内,发起超过两个分布式事务后,检测不出死锁的问题。

2021年05月28日

类别 功能 功能描述 相关文档
新增 AUTO VACUUM AUTO VACUUM可以自动执行VACUUM命令。AUTO VACUUM将检查具有大量插入、更新或删除的表,并在需要的时候主动对表执行VACUUM来回收表中的垃圾数据,提升查询速度。默认情况下, 当表被删除行数超过一半时,AUTO VACUUM会对表执行VACUUM操作来清除垃圾数据。

对于MULTI MASTER实例,当前暂时只能追踪主MASTER上发生的改动行为,辅助MASTER发生的改动行为将不会触发AUTO VACUUM。

维护定期回收空间任务
AUTO ANALYZE AUTO ANALYZE可以自动执行ANALYZE命令。AUTO ANALYZE将检查具有大量插入、更新或删除的表,并在需要的时候主动对表执行ANALYZE来收集更新表的统计信息。当前默认情况下,当表改动行数超过10%时,AUTO ANALYZE会自动对表触发一次ANALYZE操作。

对于MULTI MASTER实例,当前暂时只能追踪主MASTER上发生的改动行为,辅助MASTER发生的改动行为将不会触发AUTO ANALYZE。

使用ANALYZE收集统计信息
BRIN索引 BRIN(Block Range Index)即块级索引。其适用于AppendOnly压缩表,例如数据有序的表的大范围的选择查询,通过查询条件过滤掉不需要加载的数据块,从而减少I/O。在大数据集情况下,其相较于Btree等索引,在可以达到相近甚至超越的性能的同时,只需要很小的物理存储,并且索引生成代价远远小于Btree等索引。 索引管理
并行查询(Beta) 新增rds_segment_expansion_coeff参数,Session级别,取值为整数类型,默认值为1。

该参数可以为单条查询分配指定倍的核心数量、提升计算并行度,并通过优化器对查询进行进一步优化。该参数在低QPS场景下,对于执行时间较长(超过3秒)的计算密集型查询有线性提升,典型场景为单表聚合查询(TPCH Q1、Q6)、大表与小表的JOIN。

对于I/O密集型查询和性能瓶颈为落盘的场景,提升有限。对于网络密集型查询,可能会影响性能。

实时物化视图(Beta) 云原生数据仓库AnalyticDB PostgreSQL版支持实时物化视图,实时物化视图与物化视图功能类似。但是当数据更新时,实时物化视图无需手动调用刷新命令进行刷新。 实时物化视图
优化 可以通过集群地址进行事务块内(即BEGIN和ROLLBACK/COMMIT之间)DDL操作。
可以通过集群地址进行会话级Temp Table,Temp View操作。