计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive

8.3.0.100版本新增功能

更新时间:2024-11-05 GMT+08:00

8.3.0.x版本新增功能参见新增功能,各补丁解决问题列表参见8.3.0.x补丁新增功能及解决问题

【V8.3.0.110版本发布时间】2024年10月26日

【V8.3.0.108版本发布时间】2024年7月22日

【V8.3.0.105版本发布时间】2024年7月10日(白名单用户)

【V8.3.0.103版本发布时间】2024年6月10日(白名单用户)

【V8.3.0.101版本发布时间】2024年4月25日(白名单用户)

【V8.3.0.100版本发布时间】2024年4月17日

新增功能

表1 8.3.0特性变更

特性分类

特性描述

描述

参考文档

SQL功能

记录表对象最近一次访问时间

  • 新增enable_save_dataaccess_timestamp参数控制是否记录表的最后一次访问时间。
  • PGXC_STAT_OBJECT视图新增字段last_reference_timestamp,可查询表的最后一次访问时间。
  • 新增函数pg_stat_get_all(regclass)和pgxc_stat_get_all(regclass),返回表在CN上pg_stat_object中对应的tuple记录。
  • 开发指南>GUC参数>运行时统计>查询和索引统计收集器
  • 开发指南>系统表和视图>系统表>PGXC_STAT_OBJECT视图
  • SQL语法参考>函数和操作符>统计信息函数

安全

对接OneAccess认证

  • PG_AUTHID的rolauthinfo字段新增“OneAccess认证”。
  • AUTHINFO 'authinfo'参数补充“在支持OneAccess认证方式时,authinf必须有oneaccessClientId和domain信息,满足'oneaccessClientId=xxxx,domain=xxxx'格式”。
  • 开发指南>系统表>PG_AUTHID
  • SQL语法参考>DDL语法>CREATE ROLE

易用性

pg_job支持记录出错信息

新增PG_JOB_INFO系统表记录定时任务的执行结果信息。

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

高性能

pooler支持连接备机

新增GUC参数enable_connect_standby设置CN连接DN备机。

开发指南>GUC参数>连接和认证>通信库参数

CMC

系统表、系统函数历史接口日落

通过日落计划了解产品演进方向,改善产品体验,提升产品可靠性、易用性。

新增章节“元数据日落说明”汇总了日落的视图和函数

HA

运维视图增强

新增函数:

1.pgxc_get_xlog_stats(),在CN上执行,统计各个DN节点自开机到当前不同xlog类型数量。

2.pgxc_get_wal_speed(),在CN上执行,获取每一个DN实例的wal生成速率以及备DN receive、write、flush、redo速率。

3.pg_xlog_display_one_lsn(start_lsn),可以在CN或者DN上执行,根据起始LSN号完整解析当前位置的xlog。

4.pg_xlogdump (tablename),可以在CN或者DN上执行,根据表名解析xlog文件并过滤。

5.pg_xlogdump (xid),可以在CN或者DN上执行,根据事务id号解析xlog文件并过滤。

6.pg_xlogdump (start_lsn, end_lsn),可以在CN或者DN上执行,根据起始和终止lsn解析xlog文件。

SQL语法参考>函数和操作符>统计信息函数

HA

残留文件清理

新增以下扫描残留文件函数:

  • pg_scan_residualfiles()
  • pgxc_scan_residualfiles(query_flag)
  • pg_get_scan_residualfiles()
  • pgxc_get_scan_residualfiles(query_flag)
  • pg_archive_scan_residualfiles()
  • pgxc_archive_scan_residualfiles(query_flag)
  • pg_rm_scan_residualfiles_archive()
  • pgxc_rm_scan_residualfiles_archive(query_flag)

SQL语法参考>函数和操作符>残留文件管理函数>扫描残留文件函数

高性能

列存CU二级分区

新增参数secondary_part_column和secondary_part_num,用来指定列存表二级分区列的列名和数量。

开发指南>实时数仓>实时数仓语法>CREATE TABLE

高性能

支持表级oldestxmin

新增GUC参数enable_table_level_oldestxmin,控制是否开启表级oldestxmin特性。

新增GUC参数old_txn_threshold,计算表级oldestxmin时,运行超过此参数的事务被认定为长事务。

开发指南>GUC参数>自动清理

外表

sql on hudi

新增Hudi系统函数hudi_set_sync_commit,用于设置Hudi自动同步任务起点时间戳。

新增参数cow_improve,针对COPY_ON_WRITE表的优化,仅支持format为hudi时指定。

SQL语法>函数与操作符>Hudi系统函数

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

分布式死锁检测

新增GUC参数enable_global_deadlock_detector和

global_deadlock_detector_period,控制分布式死锁检测功能的开启以及检测周期间隔。

开发指南>GUC参数>锁管理

实时查询

bitmap 索引

新增表级参数enable_hstore_opt、enable_hstore_opt。

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

实时查询

字典编码

新增GUC参数enable_dict_plan、dict_plan_distinct_limit、dict_plan_duplicate_ratio、enable_cu_predicate_pushdown。

新增字典编码的hint。

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

性能调优>使用plan hint进行调优

实时查询

近似计算:基于hll算法实现列存近似计算向量化函数

新增approx_count_distinct(col_name)函数。

新增GUC参数approx_count_distinct_precision,表示HyperLogLog++ (HLL++)算法中分桶个数,可以用来调整approx_count_distinct聚集函数的误差率。

SQL语法参考>函数和操作符>聚集函数

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

实时查询

精确计算:参考unique算子,一次扫描和聚集计算得到多列count distinct结果(含roaring bitmap)

新增uniq函数。

SQL语法参考>函数和操作符>聚集函数

实时查询

子计划支持向量化

新增GUC参数vector_engine_strategy,用于控制向量化增强策略。

开发指南>GUC参数>其他参数

SQL

支持漏斗函数、留存函数

新增漏斗函数window_funnel、retention、range_retention_count、range_retention_sum。

SQL语法参考>函数和操作符>漏斗和留存函数

SQL

DWS支持作业反压机制

新增GUC参数max_queue_statements,设置排队作业的最大排队长度。

开发指南>GUC参数>资源管理

SQL

查询结束锁释放功能

新增GUC参数enable_release_scan_lock,控制SELECT语句是否在语句执行结束后将一级锁释放。

开发指南>GUC参数>锁管理

SQL

复制表专项

GUC参数behavior_compat_options新增disable_update_returning_check。

开发指南>GUC参数>其他参数

可复制性

cast函数四舍五入规则优化

GUC参数behavior_compat_options新增选项。enable_banker_round,控制数值类型舍入行为使用四舍五入还是银行家算法。

开发指南>GUC参数>其他参数

SQL

string_agg行为兼容

GUC参数behavior_compat_options新增选项enable_full_string_agg。

开发指南>GUC参数>其他参数

导入导出

ORC三方库升级及性能优化

新增GUC参数dfs_max_memory,用于设置orc导出时能占用的最大内存。

开发指南>GUC参数>资源消耗>内存

分区管理

copy语句下盘优化

新增GUC参数default_partition_cache_strategy,控制分区缓存的默认策略。

开发指南>GUC参数>资源管理

实时数仓

hstore表优化批量upsert

新增GUC参数enable_hstore_keyby_upsert,控制hstore表对于批量upsert的特定优化。

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

分区管理

自动管理功能自减分区操作阻塞实时入库

新增函数pg_partition_management_time,用于修改自增分区任务调用时间。

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

数据库对象函数>分区管理函数

实时查询

Turbo引擎(8.3.0.100新增)

  • 新增表级参数enable_turbo_store,用于控制是否创建为turbo表,该参数只对列存表有效。
  • 新增GUC参数turbo_engine_version,对于建表指定turbo存储格式表,且当查询只涉及单表agg查询场景(查询计划中仅涉及Scan/Stream/Hash Agg/Sort算子)时,执行器可走turbo执行引擎。
  • SQL语法参考> DDL语法> CREATE TABLE
  • 开发指南> GUC参数 > 查询规划 > 优化器方法配置

兼容性

整数相除结果兼容PG(8.3.0.100新增)

GUC参数behavior_compat_options新增选项enable_int_division_by_truncate,控制整数除法行为结果集输出整数还是浮点数,行为兼容PG或者兼容ORA。

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

兼容性

控制case when条件中含有返回为多结果集函数(8.3.0.100新增)

GUC参数behavior_compat_options新增选项unsupported_set_function_case,

控制是否支持case when条件中含有返回为多结果集函数。

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

兼容性

窗口函数last_value支持ignore nulls功能(8.3.0.100新增)

LAST_VALUE函数支持IGNORE NULLS语法。

SQL语法参考>函数和操作符>窗口函数

性能

LEFT JOIN估算(8.3.0.100新增)

新增GUC参数left_join_estimation_enhancement,控制left join的行数估计值是否采用优化后的值。默认值:off

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

SQL语法增强

列存索引区索引清理与重建

(8.3.0.100新增)

新增WITHOUT UNUSABLE语法选项:

  • ALTER INDEX index_name REBUILD [ PARTITION partition_name ] [WITHOUT UNUSABLE ]
  • ALTER TABLE REBUILD PARTITION partition_name [ WITHOUT UNUSABLE ]
  • REINDEX { INDEX | [INTERNAL] TABLE } name [ FORCE | WITHOUT UNUSABLE ]
  • REINDEX { INDEX | [INTERNAL] TABLE } name PARTITION partition_name [ FORCE | WITHOUT UNUSABLE ]

SQL语法参考>ALTER INDEX/ALTER TABLE/REINDEX

实时数仓

Hstore binlog表支持扩容重分布

(8.3.0.100新增)

新增GUC参数binlog_consume_timeout,用于控制在线扩缩容binlog表时,循环判断binlog记录是否都被消费的超时时间。

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

行为变更

表2 行为变更

变更类型

序号

名称

变更描述

删除

1

policy_oid

原policy_oid字段在升级到8.3.0版本时字段为NULL,现改为在升级阶段通过脚本对policy_oid字段填充对应的policy_oid。

修改

2

gs_dump

gs_dump会带上索引的unusable状态。

3

pg_get_tabledef

pg_get_tabledef会带上索引的unusable状态。

4

pg_get_indexdef

pg_get_indexdef会带上索引的unusable状态。

5

create table like

including复制的索引会带上源索引的unusable状态。

SQL语法

表3 SQL语法

变更类型

序号

名称

变更描述

修改

1

CREATE TABLE

支持场景:create <普通表> like <分区表> INCLUDING INDEXES;修改了创建索引语句的判断逻辑,用实际创建表的类型而不是like表的类型来设置索引的类型。

新增

2

last_value ignore nulls语法

支持last_value ignore nulls语法在计算时忽略NULL值。

3

ALTER INDEX index_name REBUILD [ PARTITION partition_name ] [WITHOUT UNUSABLE ]

unusable索引重建语法增强。

4

ALTER TABLE REBUILD PARTITION partition_name [ WITHOUT UNUSABLE ]

unusable索引重建语法增强。

5

REINDEX { INDEX | [INTERNAL] TABLE } name [ FORCE | WITHOUT UNUSABLE ]

unusable索引重建语法增强。

6

REINDEX { INDEX | [INTERNAL] TABLE } name PARTITION partition_name [ FORCE | WITHOUT UNUSABLE ]

unusable索引重建语法增强。

7

CREATE INDEX ... [ UNUSABLE ] ... PARTITION index_partition_name [ UNUSABLE ]

支持创建unusable状态的索引。

系统表

表4 系统表

变更类型

序号

名称

变更描述

修改

1

pg_stat_object

将预留字段extra1改名为last_autovacuum_csn。

2

gs_wlm_session_info

增加parse_time字段。

3

pg_job_info

新增列jobdb,用于存储job所在库信息。

系统函数

表5 系统函数

变更类型

序号

名称

变更描述

新增

1

dbms_job.submit_node

新增dbms_job.submit_node,功能在submit基础上增加job_node,用于指定执行节点,默认null,代表当前CN节点。

2

dbms_job.change_node

新增dbms_job.change_node用于指定执行节点,默认null,代表当前CN节点。

3

漏斗函数

新增漏斗函数windowfunnel。

4

留存函数

新增留存函数retention。

5

留存扩展函数

新增留存扩展函数range_retention_count。

6

留存扩展函数

新增留存扩展函数range_retention_sum。

7

approx_count_distinct

新增近似计算聚集函数。

8

pg_scan_residualfiles

扫描当前节点当前库中所有符合特征的残留文件。

9

pgxc_scan_residualfiles

扫描多个节点当前库中所有符合特征的残留文件。

10

pg_get_scan_residualfiles

获取当前节点扫描到的残留文件列表。

11

pgxc_get_scan_residualfiles

获取多个节点上扫描到的残留文件列表。

12

pg_archive_scan_residualfiles

归档当前节点扫描的残留文件列表。

13

pgxc_archive_scan_residualfiles

归档多个节点上扫描的残留文件列表。

14

pg_rm_scan_residualfiles_archive

删除当前节点所有残留文件归档。

15

pgxc_rm_scan_residualfiles_archive

删除多个节点上所有残留文件归档。

16

pg_partition_management_time

修改自增分区任务调用时间。

17

uniq

辅助完成精准去重等对数据的uv计算。

18

reload_cold_partition

冷热表冷分区转热。

修改

19

pgxc_get_small_cu_info

增加可以查询二级分区每个分区cu数量的功能。

20

pgxc_get_wlm_session_info_bytime

增加parse_time字段。

删除

21

pg_sync_cstore_delta(text)

废弃系统函数日落。

22

pg_sync_cstore_delta

废弃系统函数日落。

23

pgxc_pool_check

废弃系统函数日落。

24

pg_delete_audit

废弃系统函数日落。

25

pg_log_comm_status

废弃系统函数日落。

26

pgxc_log_comm_status

废弃系统函数日落。

27

signal_backend

废弃系统函数日落。

28

pg_stat_get_realtime_info_internal

废弃系统函数日落。

29

pg_stat_get_wlm_session_info_internal

废弃系统函数日落。

30

pg_stat_get_wlm_session_info

废弃系统函数日落。

31

pg_stat_get_wlm_statistics

废弃系统函数日落。

32

pg_user_iostat

废弃系统函数日落。

33

pg_stat_get_wlm_session_iostat_info

废弃系统函数日落。

系统视图

表6 系统视图

变更类型

序号

名称

变更描述

新增

1

pgxc_memory_debug_info

显示当前集群每个节点在执行作业时的内存报错信息,便于定位内存报错问题。

修改

2

pgxc_stat_object

跟随pg_stat_object一起更改,预留字段extra1改名为last_autovacuum_csn。

3

gs_wlm_session_statistics

增加parse_time字段。

4

pgxc_wlm_session_statistics

增加parse_time字段。

5

gs_wlm_session_history

增加parse_time字段。

6

pgxc_wlm_session_history

增加parse_time字段。

7

gs_wlm_session_info

增加parse_time字段。

8

information_schema.tables

修改视图定义,改变筛选条件,使reloptions为空的视图可以查到。

9

gs_table_stat

优化gs_table_stat视图查询性能。

10

gs_row_table_io_stat

等价逻辑改写查询性能优化。

11

gs_column_table_io_stat

等价逻辑改写查询性能优化。

删除

12

gs_wlm_session_info_all

废弃系统视图日落。

13

pg_wlm_statistics

废弃系统视图日落。

14

pg_session_iostat

废弃系统视图日落。

GUC参数

表7 GUC参数

变更类型

序号

名称

变更描述

新增

1

max_queue_statements

默认为-1,标识最大排队长度,当作业排队超过该值时报错退出。对于新装和升级集群该参数不生效。

2

job_retention_time

标识pg_job执行结果最长保存天数,默认为30。

3

vector_engine_strategy

控制向量化算子的策略,默认为improve,表示尽可能将计划向量化;可设置为force,表示强制回退为行存计划。

4

enable_release_scan_lock

控制SELECT语句是否在语句执行结束后将一级锁释放。默认关闭。

5

job_queue_naptime

设置触发调度任务检查的时间间隔及任务线程启动的超时时间,默认1s。

6

approx_count_distinct_precision

该参数表示HyperLogLog++ (HLL++)算法中分桶个数,可以用来调整approx_count_distinct聚集函数的误差率。桶的个数会影响distinct值估算的精度,桶的个数越多,误差越小。默认值17。

7

llvm_compile_expr_limit

限制LLVM表达式最大编译个数。

8

llvm_compile_time_limit

LLVM编译时间在执行器运行时间中的占比超过llvm_compile_time_limit所设置的阈值,说明LLVM编译时间占比过高,生成告警提示。

9

max_opt_sort_rows

控制order by子句中最大优化的limit+offset行数。如果超过这一行数,走原逻辑,小于这个行数走优化后逻辑。默认设为0,即默认走原逻辑。

10

dfs_max_memory

设置orc导出时能占用的最大内存。默认值262144KB。

11

default_partition_cache_strategy

控制分区缓存的默认策略。

12

enable_connect_standby

设置CN是否连接DN备机。仅适用于运维操作。

13

enable_stream_sync_quit

设置stream计划结束时,stream线程是否同步退出。默认关闭,实现sync quit不阻塞。

14

full_group_by_mode

用于控制disable_full_group_by_mysql语法开关打开后的两种不同行为:

  • nullpadding表示对于非聚集列而言,对该列NULL值进行填充,取该列非NULL值,结果集可能为不同行。
  • notpadding表示对于非聚集列而言,不处理NULL值,取该行整行数据,非聚集列结果集为随机的一行。

修改

15

behavior_compat_options

新增选项alter_distribute_key_by_partition,控制ALTER TABLE修改分区表分布列时INSERT INTO是否按分区执行。

16

behavior_compat_options

新增选项enable_full_string_agg,控制string_agg(a, delimeter) over (partition by b order by c)场景行为,采用窗口内的全量聚合逻辑还是增量聚合逻辑。

17

behavior_compat_options

新增选项unsupported_set_function_case,控制是否支持case when条件中含有返回为多结果集函数。

18

behavior_compat_options

新增选项enable_unknown_datatype。在未设置时,不允许用户创建存在unknown类型列的表。

19

behavior_compat_options

新增选项enable_whole_row_var。针对使用表名做表达式场景(SELECT T FROM T,或SELECT .... FROM T GROUP BY T),未设置enable_whole_row_var选项时,在parse阶段,对该类场景进行拦截,报错处理。

20

time_track_strategy

参数由USERSET级别修改为SIGHUP级别,内核层面默认修改为timer,可以通过管理控制台设置为tsc。

21

rewrite_rule

控制在重写时是否走case when改写。

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容