更新时间:2024-08-12 GMT+08:00
分享

9.1.0.100版本新增功能

【V9.1.0.100版本发布时间】2024年8月12日

新增功能

表1 9.1.0.xxx特性变更

特性分类

特性描述

描述

参考文档

9.1.0特性变更

易用-稳定性

基于queryId/PID动态切换SQL资源池

新增函数:gs_switch_respool(query_id int8, resource_pool_name name),作业切换资源池函数。

SQL语法参考>函数和操作符>系统管理函数>资源管理函数

高性能

jsonb_extract_path udf函数功能增强

新增函数:

jsonb_extract((jsonb, VARIADIC text[]),输入任意的object-jsonb类型、array-jsonb类型,返回$2所指路径的值。

jsonb_extract_text((jsonb, VARIADIC text[]),输入任意的object-jsonb类型、array-jsonb类型,返回$2所指路径的值。

SQL语法参考>函数和操作符>JSON/JSONB函数

易用-生态兼容

CREATE SCHEMA IF NOT EXISTS

修改内容:

CREATE INDEX [IF NOT EXISTS]

CREATE SCHEMA IF NOT EXISTS schema_name

CREATE SEQUENCE [ IF NOT EXISTS ] name

SQL语法参考>DDL>CREATE INDEX/CREATE SCHEMA/CREATE SEQUENCE

内存

memory context内存统计

新增函数:查询指定共享内存下内存上下文申请的所有chunk信息。

  • pg_shared_chunk_detail(contextname char(64))
  • pv_session_chunk_detail(tid int, contextname char(64))
  • pg_shared_chunk_dump(contextname char(64))
  • pv_session_chunk_dump(tid int, contextname char(64))

SQL语法参考>函数和操作符>系统管理函数>内存管理函数

HA

HA双通道优化

新增GUC参数enable_delayed_unlinks,设置是否开启检查点延迟删除特性。

开发指南>GUC参数>预写式日志>检查点

安全

数据脱敏增加安全管理员角色

预置角色新增gs_redaction_policy,具有创建、修改、删除脱敏策略的权限。

开发指南>管理数据库安全>管理用户及权限>权限管理

SQL语法参考>DDL语法>ALTER REDACTION POLICY/CREATE REDACTION POLICY/DROP REDACTION POLICY

安全

审计日志记录级联删除对象

audit_object_name_format参数补充“当默认值设置为all时,显示多个对象名的场景:DROP USER ... CASCADE、DROP OWNED BY ... CASCADE、DROP SCHEMA ... CASSCADE、DROP TABLE ... CASCADE、DROP FOREIGN TABLE ... CASCADE、DROP VIEW ... CASCADE。”

GUC参数>审计>审计开关

安全

函数支持ALTER/DROP权限

1. 对函数授权的子句。grant_on_functions_clause语法

修改为:GRANT { { EXECUTE | ALTER | DROP } [, ...] | ALL [ PRIVILEGES ] }

2. 回收函数的权限的子句。revoke_on_functions_clause修改为:REVOKE [ GRANT OPTION FOR ] { { EXECUTE | ALTER | DROP } [, ...] | ALL [ PRIVILEGES ] }

3. 将函数的访问权限赋予给指定的用户或角色。 GRANT { { EXECUTE | ALTER | DROP } [, ...] | ALL [ PRIVILEGES ] }

4. 撤销指定函数上权限。

REVOKE [ GRANT OPTION FOR ] { { EXECUTE | ALTER | DROP } [, ...] | ALL [ PRIVILEGES ] }

SQL语法参考>DCL语法>ALTER DEFAULT PRIVILEGES /GRANT/REVOKE

易用

序列支持查看及修改cache值

新增视图PG_SEQUENCES,显示当前用户有权限的序列属性信息。

开发指南>系统表和系统视图>系统视图

易用

相关stat函数支持列存表索引

GLOBAL_TABLE_STAT/GS_TABLE_STAT视图seq_scan/seq_tuple_read/index_scan/index_tuple_read字段删除“只统计行存表”的约束内容。

开发指南>系统表和系统视图>系统视图>GLOBAL_TABLE_STAT/GS_TABLE_STAT

生态兼容

CREATE SCHEMA/ INDEX 支持 IF NOT EXISTS

CREATE INDEX [IF NOT EXISTS]

CREATE SCHEMA IF NOT EXISTS schema_name

CREATE SEQUENCE [ IF NOT EXISTS ] name

SQL语法参考>DDL>CREATE INDEX/CREATE SCHEMA/CREATE SEQUENCE

性能

hint参数支持更多参数

修改内容:guc hint支持的配置参数新增以下参数:

  • enable_array_optimization
  • enable_csqual_pushdown
  • enable_hashfilter
  • enable_mergejoin
  • enable_mixedagg
  • enable_seqscan
  • enable_sonic_hashagg
  • enable_sonic_hashjoin
  • enable_tidscan
  • stream_ctescan_max_estimate_mem
  • stream_ctescan_pred_threshold
  • stream_ctescan_refcount_threshold
  • windowagg_pushdown_enhancement

性能调优>SQL调优指南>使用Plan Hint进行调优>配置参数的hint

生态兼容

修复pbe模式下,删除schema 重建表,执行查询缓存报表不存在问题

behavior_compat_options新增选项enable_change_search_path,控制在形成通用计划generic_plan后能否修改搜寻路径。

开发指南>GUC参数版本和平台兼容性>平台和客户端兼容性

性能

Topsql增加parse_time字段表示语句解析优化的总耗时

GS_WLM_SESSION_HISTORY/GS_WLM_SESSION_STATISTICS/PGXC_WLM_SESSION_INFO/PGXC_WLM_SESSION_STATISTICS视图新增字段parse_time,显示语句排队前的解析总时间。

开发指南>系统表和系统视图>系统视图>GS_WLM_SESSION_HISTORY GS_WLM_SESSION_STATISTICS/PGXC_WLM_SESSION_INFO/PGXC_WLM_SESSION_STATISTICS

导入导出

GDS导出外表支持容错参数compatible_illegal_chars

GDS导出外表支持容错参数compatible_illegal_chars。

SQL语法参考>DDL语法>CREATE FOREIGN TABLE (GDS导入导出)

导入导出

支持GDS导出定长格式文件数据导出为一行;支持GDS导出数据文件对齐方式

导出FIXED格式时可指定eol参数为空串'',将FIXED格式数据导出为一行。

参数OPTIONS新增选项out_fix_num_alignment,控制字符型数据和数值型数据左右对齐方式。

SQL语法参考>DDL语法>CREATE FOREIGN TABLE (GDS导入导出)

高性能

子查询条件上移传递

rewrite_rule取值新增subquery_qual_pull_up,表示对于无法提升的子查询,若子查询与其它表进行关联的关联列在子查询内部有过滤条件,支持从子查询中提取过滤条件并传递到关联条件另一侧。

开发指南>开发人员选项>rewrite_rule

高性能

inlist执行器计算hash化支持

  • 新增GUC参数enable_inlist_hashing,控制是否使用inlist哈希优化。
  • 修改参数qrw_inlist2join_optmode默认值为disable。

开发指南>GUC参数>查询规划>优化器方法配置

易用性

调度器的功能增强(hudi)

新增查询历史同步信息、查询同步任务状态、复位连续失败任务。

开发指南>SQL on Hudi>Hudi任务同步

易用性

设定默认的临时表类型(volatile)

  • 新增GUC参数default_temptable_type,用于控制CREATE TABLE创建临时表时在TEMP或TEMPORARY前未指定表类型所创建临时表的类型。
  • CREATE TABLE补充说明:当default_temptable_type=local时,不指定关键字创建的临时表为local类型临时表,当default_temptable_type=volatile时,不指定关键字创建的临时表为volatile类型临时表。
  • 开发指南>GUC参数>其他选项
  • SQL语法参考>DDL语法>CREATE TABLE

兼容性

支持指定分区的MERGE操作

新增partition_clause子句,partition_clause参数描述及相关约束。

SQL语法参考>DML语法>MERGE INTO

兼容性

TD兼容模式下支持比较字符串忽略尾部空格

CREATE DATABASE语法新增参数[DBCOMPATIBILITY_BEHAVIOR [=] opt_compat_behavior]

SQL语法参考>DDL语法>CREATE DATABASE

兼容性

支持通过GUC参数配置控制varchar(n)的n为字符个数限制

GUC参数behavior_compat_options新增选项enable_varchar_to_nvarchar2,控制通过DDL语句创建、更新的varchar字段是否自动切换为nvarchar2字段。

开发指南>GUC参数>版本和平台兼容性>平台和客户端兼容性

高性能

ANALYZE优化

新增EXPLAIN PERFORMANCE语法格式及示例。

SQL语法参考>DML语法>EXPLAIN

扩缩容

缩容需适配指定表跳过重分布的方案

in_redistribution字段新增选项s,表示NodeGroup不需要重分布,重分布过程将跳过此节点组。

开发指南>系统表和系统视图>系统表>PGXC_GROUP

高性能

支持使用analysis_options中KEEP_SAMPLE_DATA选项

analysis_options新增选项KEEP_SAMPLE_DATA,表示以临时表的形式保留每次analyze操作中使用的采样数据。

开发指南>GUC参数>开发人员选项

实时数仓

列存hstore表异步排序

新增函数gs_hstore_asyncsort和gs_get_sorted_cu_info,用来获取目标表的排序。

新增GUC参数autovacuum_asyncsort_rows_limit和autovacuum_asyncsort_time_limit,查看自动异步排序的行数和时间。

  • 开发指南>实时数仓>实时数仓函数
  • 开发指南>实时数仓>实时数仓GUC参数

湖仓一体

支持Hive Metastore对接

新增METAADDRESS和CONFIGURATION参数,提供hivemetastore的通讯接口和配置文件存放路径。

新增跨集群访问HiveMetaStore,通过建立EXTERNAL SCHEMA实现远端访问MRS的Hive数据源。

  • SQL语法>DDL语法>ALTER EXTERNAL SCHEMA
  • SQL语法>DDL语法>CREATE EXTERNAL SCHEMA
  • 开发指南>数据迁移>导入数据

湖仓一体

支持parquet写

数据导出支持parquet文件格式。

SQL语法>DDL语法> CREATE FOREIGN TABLE (SQL on OBS or Hadoop)

高性能

冷热表增强

新增函数reload_cold_partition,支持冷热数据互相转换,新增示例支持将冷分区数据转换成热分区。

  • SQL语法>函数和操作符>数据库对象函数>冷热表用户函数
  • 开发指南>冷热数据管理

高性能

缓存双写

新增GUC参数和视图,对于列存表和hstore opt表,在异步写数据到obs后,同时也支持将数据写到本地磁盘上。

开发指南>GUC参数>资源消耗>异步IO

开发指南>系统表和系统视图>系统视图

高性能

异步写业务逻辑适配

新增GUC参数和视图:obs_worker_pool_size用于设置IO调度器资源池的最大值。enable_aio_scheduler,控制是否开启异步IO调度。

PGXC_OBS_IO_SCHEDULER_STATS,用于查询OBS IO Scheduler读/写请求相关的实时统计信息。

开发指南>GUC参数>异步IO

开发指南>系统表和系统视图>系统视图

9.1.0.100特性变更

日志归档

审计日志转储一期

新增GUC参数:

  • obs_audit_enabled,控制审计转储功能的开启和关闭。
  • obs_audit_space_limit,设置转储的审计文件占用的OBS空间总量。
  • obs_audit_file_remain_time,设置OBS上需记录转储的审计日志的最短时间要求。

开发指南>GUC参数>审计>审计开关

升级

json函数性能优化

新增函数:

  • json_to_record_array(anyelement, array-json [, bool])
  • jsonb_to_record_array(anyelement, array-json [, bool])

SQL语法参考>函数和操作符>JSON/JSONB函数和操作符>JSON/JSONB函数

SQL

Plan Management

新增函数pgxc_reset_planmgmt_hashtable(),释放所有CN上plan management用于缓存outline所占用的内存。

SQL语法参考>函数和操作符>系统管理函数>plan management管理函数

实时

runtime filter 1期

新增GUC参数:

  • runtime_filter_type,标识使用的runtime filter类型。
  • runtime_filter_ratio,控制runtime filter在join场景中是否使用bloom filter进行细粒度行级过滤的阈值。

开发指南>GUC参数>查询规划>其他优化器选项

实时

turbo引擎性能优化

  • turbo_engine_version参数新增取值3,取值为3时,对于大多常用算子可使用turbo执行引擎加速,不支持算子如merge join,sort agg等算子。
  • 新增GUC参数spill_compression,控制执行器算子运行数据由于内存不足下盘时的压缩算法。

开发指南>GUC 参数>查询规划>优化器方法配置

IO

资源管理IO监控能力增强

  • 新增GS_QUERY_RESOURCE_INFO视图,显示当前DN节点所有正在运行作业的资源信息。
  • 新增函数pgxc_query_resource_info(query_id bigint),显示指定query_id对应的语句在所有DN上的资源监控信息。
  • 开发指南>系统表和视图>系统视图>GS_QUERY_RESOURCE_INFO
  • SQL语法参考>函数和操作符>系统管理函数>资源管理函数

连接数

空闲连接治理

新增GUC参数syscache_clean_policy,设置DN空闲连接内存及数量清理策略。

开发指南>GUC参数>连接池参数

异常规则

查询过滤器熔断规则增强

  • PG_BLOCKLISTS系统表记录了查询过滤规则。
  • DDL语法新增CREATE BLOCK RULE/ ALTER BLOCK RULE /DROP BLOCK RULE。
  • 开发指南>系统表和视图>系统表>PG_BLOCKLISTS
  • SQL语法参考>DDL语法

性能

NUMA绑核性能提升

新增GUC参数:

  • enable_numa_bind,设置是否开启NUMA绑定功能。默认开启。
  • numa_bind_node,设置在开启NUMA绑定后进程绑定在哪个NUMA节点运行。

开发指南>GUC参数>资源消耗> 内核资源使用

磁盘类

pgstat持久化,最后一次访问时间

  • 新增函数: pgxc_stat_get_last_data_access_timestamp(),返回指定表在所有节点中最近一次的访问时间。 pgxc_stat_flush_object_data(),手动执行持久化。
  • DBMS_JOBDBMS_JOB.ISUBMIT接口补充说明:在使用dbms_job.isubmit接口时需注意,不能和已经存在的pgstats持久化任务的id重复,否则会导致任务注册失败。
  • SQL语法参考>函数和操作符>统计信息函数
  • 开发指南>存储过程>高级包

GIS

PostGIS 3.2.2函数接口对齐

PostGIS依赖库安装,补充protobuf-c编译内容。

开发指南>PostGIS Extension>PostGIS概述/PostGIS-3.2.2安装

智能运维

ANALYZE性能增强

  • 新增GUC参数:enable_expr_skew_optimization,控制是否在倾斜优化策略中使用表达式统计信息。

    analyze_predicate_column_threshold,控制是否开启谓词列analyze及限定支持的最小列数。

    enable_runtime_analyze_concurrent, 控制是否支持对一个表进行并发runtime analyze。

    analyze_max_columns_count,控制analyze能支持最大的列数。

  • CREATE TABLE语法新增参数incremental_analyze, 控制分区表是否启用增量analyze模式。
  • ANALYZE | ANALYSE语法补充说明“开启分区统计信息参数enable_analyze_partition,对分区表设置表级incremental_analyze参数,会先对无统计信息或有数据变化的分区执行ANALYZE,然后通过合并分区统计信息方式生成分区主表的统计信息。
  • ANALYZE | ANALYSE语法补充新关键predicate,使用后会进行谓词列analyze。
  • 开发指南>GUC参数>查询规划>优化器方法配置
  • SQL语法参考>DDL 语法>CREATE TABLE
  • SQL语法参考>DCL语法>ANALYZE | ANALYSE

湖仓一体

外表read、write合一

补充READ WRITE语法,支持读写外表。

SQL语法>DDL语法>CREATE FOREIGN TABLE (SQL on OBS or Hadoop)

实时

bitmap索引增强

新增实时数参数enable_hstoreopt_auto_bitmap,用于控制是否默认在建表时给HStore Opt表自动设置bitmap columns列。

开发指南>实时数仓>实时数仓GUC参数

实时

实时数仓定位增强

新增函数pgxc_get_cstore_dirty_ratio,用于获取各个DN上目标表的cu、delta以及cudesc的脏页率,仅支持HStore_opt表。

开发指南>实时数仓>实时数仓函数

存算分离

cudesc streaming写

逻辑集群访问默认选择cudesc streaming路径,即GUC参数enable_cudesc_streaming默认值由off改为on。

开发指南 > GUC参数 > 开发人员选项

存算分离

V3表冷读性能优化

优化列存3.0表的读取性能,使得列存V3表的冷读性能相较于全缓存劣化小于30%,提高性能竞争力。

  • 新增pgxc_clear_aio_resource_pool(force_cleanup bool)函数,用于清理异步资源池中的资源。
  • 新增PGXC_AIO_RESOURCE_POOL_STATS视图,用于查询集群所有节点的异步IO资源池使用的状态。
  • 新增GUC参数cu_preload_max_distance,用于控制预读CU Group个数的上限。新增GUC参数async_io_acc_max_memory,用于控制单个任务线程中异步读/写加速特性可使用的最大内存。
  • 增加了explain performance中的磁盘缓存信息。
  • SQL语法参考 > 函数和操作符 > 系统管理函数 > 其他函数
  • 开发指南 > GUC参数 > 资源消耗 > 异步IO
  • 开发指南 > GUC参数 > 资源消耗 > 内存
  • 开发指南 > 系统表和视图 > 系统视图 > PGXC_DISK_CACHE_ALL_STATS
  • 性能调优 > SQL执行计划

相关文档