网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts 盘古助手
华为云Astro大屏应用
计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
云手机服务器 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器(旧版)
VR云渲游平台 CVR
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘平台 IEF
CloudPond云服务
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
可信智能计算服务 TICS
推荐系统 RES
云搜索服务 CSS
数据可视化 DLV
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
湖仓构建 LakeFormation
智能数据洞察 DataArts Insight
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
开天aPaaS
应用平台 AppStage
开天企业工作台 MSSE
开天集成工作台 MSSI
API中心 API Hub
云消息服务 KooMessage
交换数据空间 EDS
云地图服务 KooMap
云手机服务 KooPhone
组织成员账号 OrgID
云空间服务 KooDrive
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
区块链
区块链服务 BCS
数字资产链 DAC
华为云区块链引擎服务 HBS
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
价格
成本优化最佳实践
专属云商业逻辑
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
其他
管理控制台
消息中心
产品价格详情
系统权限
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
云服务信任体系能力说明
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts 盘古助手
华为云Astro大屏应用
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
存储容灾服务 SDRS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
云存储网关 CSG
专属分布式存储服务 DSS
数据工坊 DWR
地图数据 MapDS
键值存储服务 KVS
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
云原生服务中心 OSC
应用服务网格 ASM
华为云UCS
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB
云数据库 GeminiDB
数据管理服务 DAS
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
AI开发平台ModelArts
华为HiLens
图引擎服务 GES
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
医疗智能体 EIHealth
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
语音交互服务 SIS
人证核身服务 IVS
视频智能分析服务 VIAS
城市智能体
自动驾驶云服务 Octopus
盘古大模型 PanguLargeModels
IoT物联网
设备接入 IoTDA
全球SIM联接 GSL
IoT数据分析 IoTA
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
企业应用
域名注册服务 Domains
云解析服务 DNS
企业门户 EWP
ICP备案
商标注册
华为云WeLink
华为云会议 Meeting
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMA Exchange
API全生命周期管理 ROMA API
政企自服务管理 ESM
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
数字内容生产线 MetaStudio
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
专属云
专属计算集群 DCC
开发者工具
SDK开发指南
API签名指南
DevStar
华为云命令行工具服务 KooCLI
Huawei Cloud Toolkit
CodeArts API
云化转型
云架构中心
云采用框架
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
我的凭证
华为云公共事业服务云平台
工业软件
工业数字模型驱动引擎
硬件开发工具链平台云服务
工业数据转换引擎云服务
更新时间:2024-12-09 GMT+08:00
分享

8.2.0版本说明

【V8.2.0.107版本发布时间】2023年9月25日

【V8.2.0.106版本发布时间】2023年7月17日

【V8.2.0.103版本发布时间】2023年5月25日

【V8.2.0.102版本发布时间】2023年4月15日

【V8.2.0.101版本发布时间】2023年3月13日

【V8.2.0.100版本发布时间】2023年1月14日

【V8.2.0版本发布时间】:2022年11月28日

新增功能

表1 8.2.0新增功能

特性

描述

参考文档

新增pgcrypto加密扩展插件

新增使用pgcrypto加密数据。

开发指南>管理数据库安全>敏感数据管理>使用pgcrypto加密数据

审计日志的object_name记录SQL中所有相关读写对象

  • 资料补充“查询审计多个对象名的记录”。
  • 新增GUC参数audit_object_name_format。
  • 开发指南>管理数据库安全>数据库审计>查看审计结果
  • 用户指南>审计日志>数据库审计日志>查看数据库审计日志
  • 开发指南>GUC参数>审计>审计开关

安全模式用户操作解禁

新增GUC参数security_enable_options控制是否允许安全模式下使用grant_to_public、grant_with_grant_option和foreign_table_options三种功能。

开发指南>GUC参数>审计>操作审计

审计日志支持记录session id

  • 新增配置项normal_session_id,控制是否生成normal格式的会话ID。
  • pg_query_audit() 修改字段thread_id为session_id
  • 开发指南>GUC参数>其他选项>behavior_compat_options
  • SQL语法参考>函数和操作符>安全函数

MIXED AGG

新增GUC参数enable_mixedagg,控制优化器对Mixed Agg聚集规划类型的使用

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

优化异常规则熔断机制,防止单条慢SQL阻塞整个集群或资源池。

  • 新增用于查询作业黑名单信息和异常信息的系统表GS_BLOCKLIST_QUERY和系统视图GS_BLOCKLIST_QUERY。
  • 新增query_exception_count_limit参数用于设置作业可以触发的异常规则次数上限,作业触发异常规则次数达到上限后自动加入黑名单,后续禁止执行,只有移除黑名单后才能恢复运行。
  • 新增作业异常信息记录函数:

    gs_increase_except_num(unique_sql_id int8)

    gs_increase_except_num(unique_sql_id int8,except_num int4)

    gs_increase_except_num(unique_sql_id int8,except_num int4, except_time int8)

    gs_update_blocklist_hash_info(unique_sql_id int8, is_remove boolean)

    gs_update_blocklist_hash_info()

    gs_append_blocklist(unique_sql_id int8)

    gs_remove_blocklist(unique_sql_id int8)

    gs_wlm_rebuild_except_rule_hash()

  • 开发指南>系统表和视图>系统表/系统视图
  • 开发指南>GUC参数>负载管理
  • SQL语法参考>函数和操作符>系统管理函数>资源管理函数

内存资源充分利用

  • PGXC_RESPOOL_RESOURCE_INFO视图新增了内存负反馈机制功能。
  • 修改max_process_memory参数类型postmaster为sighup,一个机器部署单个DN情况下,max_process_memory计算公式如下:(物理内存大小 – vm.min_free_kbytes)* 0.6

    新增max_process_memory_auto_adjust参数,控制是否开启max_process_memory参数的自动调整功能。

  • 新增enable_wlm_internal_memory_limit参数,控制是否开启负载管理对语句估算内存的内置限制功能。

    新增enable_strict_memory_expansion参数,控制是否开启对语句内存扩展的严格控制。

    新增allow_zero_estimate_memory参数,控制是否允许语句估算内存为0。

  • 开发指南>系统表和视图>系统视图>PGXC_RESPOOL_RESOURCE_INFO
  • 开发指南>GUC参数>资源消耗>内存
  • 开发指南>GUC参数>资源管理

异常规则接口整改为内核语法实现

  • 新增PG_EXCEPT_RULE系统表存储关于异常规则的信息。
  • 新增ALTER EXCEPT RULE,CREATE EXCEPT RULE和DROP EXCEPT RULE语法
  • 开发指南>系统表和视图>系统表> PG_EXCEPT_RULESQL
  • SQL语法参考>DDL语法>ALTER/CREATE/DROP EXCEPT RULE

资源管理重构

  • 系统表GS_WLM_USER_RESOURCE_HISTORY“在CN和DN上均存有数据”
  • 新增PGXC_TOTAL_USER_RESOURCE_INFO视图,显示所有实例上用户实时资源消耗信息。

    新增PGXC_WLM_USER_RESOURCE_HISTORY视图,显示所有用户在对应实例上资源消耗的历史信息。

  • 开发指南>系统表和视图>系统表>GS_WLM_USER_RESOURCE_HISTORY
  • 开发指南>系统表和视图>系统视图>PGXC_TOTAL_USER_RESOURCE_INFO/PGXC_WLM_USER_RESOURCE_HISTORY

优化器阶段增加参数对stream线程很大的SQL报错

新增GUC参数max_streams_per_query,用于控制查询计划中Stream节点的数目。

开发指南>GUC参数>其他优化器选项

DWS集群只读之后,支持truncate和drop操作,能够快速释放磁盘空间,自动解除只读。

8.2.0集群版本开始支持只读状态下用户可以通过开启读写事务DROP/TRUNCATE TABLE的方式清理磁盘空间。

用户指南>集群运维>解除只读

hint子查询中生效

  • hint DML语句生效:现有hint参数增加运用于DML语句中,包括insert、update、merge、delete语句。
  • 多表场景hint增强:针对超过FROM列表的项数阈值的场景进行hint增强,避免hint失效,无法提升性能。
  • 新增enable_from_collapse_hint参数,控制是否优先以hint生效的方式重写FROM列表。
  • 开发指南>优化查询性能>改进查询>使用Plan Hint进行调优>指定子查询不提升的hint
  • 开发指南>GUC参数>查询规划>其他优化选项

动态采样

  • 新增autoanalyze_mode参数,控制autoanalyze或autovacuum的打开情况。
  • 新增autoanalyze_cache_num参数,设置轻量化autoanalyze最多缓存多少张表的统计信息。
  • 新增普通autoanalyze和轻量化autoanalyze对比。
  • 新增PV_RUNTIME_RELSTATS视图,显示autoanalyze产生的内存中表级统计信息。
  • 新增PV_RUNTIME_ATTSTATS视图,显示autoanalyze产生的内存中列级统计信息。
  • 新增pg_stat_get_runtime_relstats函数,返回轻量化autoanalyze生成的内存表级统计信息。
  • 新增pg_stat_get_runtime_attstats函数,返回轻量化autoanalyze生成的内存表列级统计信息。
  • 新增pg_stat_set_last_data_changed_num函数,设置该表上当前节点的历史累计修改计数。
  • 开发指南>GUC参数>自动清理
  • 开发指南>数据迁移>其他操作>分析表
  • 开发指南>系统表和系统视图>系统视图>PV_RUNTIME_RELSTATS
  • 开发指南>系统表和系统视图>系统视图>PV_RUNTIME_ATTSTATS
  • SQL语法参考>函数和操作符>统计信息函数

MERGE INTO语句的on条件支持系统列

新增修改索引的状态标记语法。

SQL语法参考>DDL语法>ALTER INDEX

支持sequence下推

新增volatile_shipping_version参数,控制volatile函数下推执行的范围。

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

支持Volatile临时表

  • 新增get_volatile_pg_class函数,获取volatile临时表对应pg_class基本信息,包括带表名参数和获取所有表。
  • 新增get_volatile_pg_attribute函数,获取volatile临时表对应pg_attribute基本信息,包括带列参数和获取所有列。
  • 新增VOLATILE关键字,包括DDL语法中的CREATE TABLE、CREATE TABLE AS,以及DQL语法SELECT INTO。
  • 新增释放当前session与数据库会话相关的内部资源语法DISCARD。
  • VACUUM FULL不支持对VOLATILE临时表操作。
  • 新增max_volatile_memory参数,指定所有session中volatile临时表相关context占用的最大使用总内存。
  • 新增max_volatile_tables参数,指定每个会话创建的volatile临时表最大个数。
  • 新增VOLATILE临时表功能约束。
  • SQL语法参考>函数和操作符>系统管理函数>其他函数
  • SQL语法参考>DDL语法>CREATE TABLE
  • SQL语法参考>DDL语法>CREATE TABLE AS
  • SQL语法参考>DQL语法>SELECT INTO
  • SQL语法参考>DDL语法>DISCARD
  • SQL语法参考>DDL语法>VACUUM
  • 开发指南>GUC参数>资源消耗>内存
  • 开发指南>优化查询性能>SQL执行troubleshooting>sql语句出错自动重试

MySQL兼容性增强

  • 新增TRY_CAST关键字
  • 新增CONV函数,将给定的数值或者字符串转换成目标进制,并按照字符串的形式输出结果。
  • 新增HEX函数,返回给定的数值或者字符串的十六进制字符串。
  • 新增UNHEX函数,执行HEX(n)的反向操作。
  • 新增SPACE函数,返回指定个数空格组成的字符串。
  • 新增STRCMP函数,比较两个字符串大小。
  • 新增BIN函数,将bigint类型从十进制转换成二进制,并以字符串的形式返回结果值。
  • 新增substring_index函数,按照区分大小写匹配查找delimiter分隔符,返回string字符串中第count次出现delim分隔符之前的子串。
  • 新增rand函数,返回0.0到1.0之间的随机数。
  • 新增truncate函数,截断指定位数的小数。
  • 新增addtime函数,返回给定日期/时间加上指定时间间隔的结果。
  • 新增subtime函数,返回给定日期/时间减去指定时间间隔的结果。
  • 新增timediff函数,将两个日期参数相减。
  • 新增curdate函数,返回当前日期。
  • 新增curtime函数,返回当前时间。
  • 新增convert_tz函数,转换给定的时间日期值的时区,返回转换后的时区时间。
  • 新增try_cast函数,将给定参数转换成给定的type类型值。
  • 新增cast(x, y)函数,类型转换函数。
  • 新增uuid函数,生成一个UUID类型的序列号。
  • 新增interval函数,从输入的整数数组中,查找返回最后一个小于等于目标参数n的数组索引。
  • 新增split函数,将字符串string按分隔符delimiter进行分隔,并返回数组。
  • CREATE TABLE语法新增ON UPDATE on_update_expr语法。
  • ALTER TABLE语法新增MODIFY [ COLUMN ] ON UPDATE on_update_expr语法。
  • 系统表PG_ATTRDEF新增字段adbin_on_update、adsrc_on_update。
  • 新增CURDATE、CURTIME(p)、反引号语法MySQL兼容性差异。
  • ALTER FUNCTION、ALTER INDEX、ALTER TABLE、ALTER VIEW语法支持新名称前带有原表的schema名,不支持同时修改schema名。
  • SQL语法参考>关键字
  • SQL语法参考>函数和操作符>字符处理函数和操作符
  • SQL语法参考>函数和操作符>二进制字符处理函数和操作符
  • SQL语法参考>函数和操作符>数字操作函数和操作符
  • SQL语法参考>函数和操作符>时间日期函数和操作符
  • SQL语法参考>函数和操作符>类型转换函数
  • SQL语法参考>函数和操作符>uuid函数
  • SQL语法参考>函数和操作符>数组函数和操作符
  • SQL语法参考>DDL语法>CREATE TABLE
  • SQL语法参考>DDL语法>ALTER TABLE
  • 开发指南>系统表和系统视图>系统表>PG_ATTRDEF
  • 开发指南>Oracle、Teradata和MySQL语法兼容性差异

支持基于value的重分布

  • guc hint支持的配置参数新增参数enable_stream_ctescan不支持在子查询级别设置、enable_value_redistribute支持在子查询级别设置
  • 新增enable_value_redistribute参数,控制是否开启生成value redistribute优化计划。
  • 开发指南>优化性能查询>改进查询>使用Plan Hint进行调优>配置参数的hint
  • 开发指南>GUC参数>查询规划>优化器方法配置

Magic set增强

  • rewrite_rule参数新增eager_magicset取值,使用eager_magicset查询重写规则(从主查询中下推条件到子查询)。
  • 新增windowagg_pushdown_enhancement,标识是否在聚集场景下启用窗口函数谓词下推增强功能。
  • 开发指南>GUC参数>开发人员选项
  • 开发指南>GUC参数>查询规划>其他优化器选项

SetOp支持双层计算

新增setop_optmode参数,控制不带ALL选项的集合操作(UNION/EXCEPT/INTERSECT)语句的各个查询分支语句是否执行去重操作。

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

OBS外表导入性能优化

新增参数file_split_threshold,仅对TEXT格式的READ ONLY外表有效。适用于文件数少于DN数的导入场景。

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

DWS支持委托方式连接OBS

新增参数security_token,与临时AK、SK共同组成临时安全凭证。

  • SQL语法参考>DDL语法>CREATE SERVER
  • SQL语法参考>DDL语法>CREATE FOREIGN TABLE (OBS导入导出)

OBS外表导出文本格式支持使用server指定AK、SK

  • FOREIGN DATA WRAPPER fdw_name参数下新增描述GDS外表使用gsmpp_server,fdw_name为dist_fdw。
  • access_key,secret_access_key,security_token参数中补充约束FOREIGN DATA WRAPPER为dist_fdw。
  • 修改参数gsmpp_server为server_name,可以使用初始数据库默认创建的gsmpp_server,也可以使用自定义的server。
  • SQL语法参考>DDL语法>CREATE SERVER
  • SQL语法参考>DDL语法>CREATE FOREIGN TABLE (OBS导入导出)

OBS读写性能监控

新增视图GS_OBS_LATENCY,记录OBS的平均延迟信息。

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

OBS读写带宽视图

新增读写带宽视图GS_OBS_READ_TRAFFIC和GS_OBS_WRITE_TRAFFIC,按10分钟间隔聚集,增加logtime列显示时间分组。

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

列存支持ring buffer

新增GUC参数enable_cstore_ring_buffer,设置列存RingBuffer的开关。

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

GaussDB(DWS) 列存vacuum适配

列存vacuum新增系统函数。

get_col_file_info(table_name)

get_all_col_file_info()

col_rebuild_file_relation(table_name)

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

OBS外表(dfs_fdw)支持文本压缩格式导入

新增参数compression,导入导出时指定文件的压缩方式。

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

带索引导入优化,避免产生大量xlog。

  • 新增视图PGXC_STAT_WAL,显示当前query的wal日志和数据页的流量信息。
  • 新增GUC参数enable_wal_decelerate,设置wal日志限速的总开关。
  • 新增GUC参数wal_decelerate_policy,控制触发限速后的行为策略。
  • 新增GUC参数wal_write_speed,单DN上每个query每秒最大允许作业触发WAL写入的速度。
  • 新增GUC参数wal_decelerate_trigger_threshold,单DN每个query触发wal写入限速的阈值。
  • SQL语法新增两个函数:
  • 新增函数pg_stat_wal_write(),记录当前实例的线程信息,并统计wal日志和数据页导入量及速率。
  • 新增函数pgxc_stat_wal_write(),记录各个DN上与CN交互的线程信息,并统计wal日志和数据页导入量及速率。
  • 开发指南>系统表和系统视图>系统视图>PGXC_STAT_WAL
  • 开发指南>GUC参数>预写式日志>设置
  • SQL语法参考>函数和操作符>统计信息函数

LATIN1库的dist fdw外表支持dataencoding参数

新增参数dataencoding,实现GDS导入导出时数据从dataencoding与encoding之间的转换。

  • SQL语法参考>DDL语法>CREATE FOREIGN TABLE (GDS导入导出)
  • SQL语法参考>DDL语法>CREATE FOREIGN TABLE (SQL on other GaussDB(DWS))

GDS互联互通支持网络压缩

新增参数gds_compress,用于降低用户使用GDS管道文件时集群之间互联互通的网络带宽。

  • SQL语法参考>DDL语法>CREATE FOREIGN TABLE (GDS导入导出)
  • SQL语法参考>DDL语法>CREATE FOREIGN TABLE (SQL on other GaussDB(DWS))

DDL锁超时配置

新增GUC参数ddl_lock_timeout,可对DDL锁超时时间进行配置。

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

PG_LOCKS视图增强

  • 新增视图PGXC_WAIT_DETAIL和PGXC_LOCKWAIT_DETAIL
  • 增加wait_on_pid、query_id等字段。

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

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

修改原有下推计划

新增implied_quality_optmode参数,标识语句中等值列的条件传递优化策略。

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

Analyze采样自适应(8.2.0.100新增)

  • 新增GUC参数analyze_stats_mode、analyze_sample_mode
  • random_function_version默认值修改为1。
  • 开发指南>GUC参数>自动清理
  • 开发指南>GUC参数>查询规划>其他优化器选项

Cost估算增强(8.2.0.100新增)

enable_extrapolation_stats放开了数据类型限制,修改默认值为on。

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

列存小CU视图(8.2.0.100新增)

新增列存表的CU信息函数:

  • get_col_cu_info
  • get_col_file_vacuum_info
  • get_all_col_cu_info

SQL语法>函数与操作符>系统管理函数>其他函数

脏页监控视图优化(8.2.0.100新增)

新增视图:PGXC_STAT_TABLE_DIRTY

新增函数:pg_stat_get_tuple()、pgxc_stat_single_table

  • 开发指南>系统表和系统视图>系统视图 > PGXC_STAT_TABLE_DIRTY
  • SQL语法>函数与操作符>统计信息函数

select不阻塞truncate(8.2.0.100新增)

新增GUC参数ddl_select_concurrent_mode,控制DDL语句和SELECT语句并发。

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

支持HStore表(8.2.0.100新增)

新增实时数仓独立场景,CREATE TABLE语法中新增enable_hstore参数。

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

细粒度容灾(8.2.0.100新增)

  • 新增备份容灾系统表和系统视图。
  • CREATE TABLE语法中新增enable_disaster_cstore和fine_disaster_table_role参数。
  • LOCK语法中新增local coordinator only参数。
  • 新增发布与订阅SQL语法。
  • 开发指南>系统表和系统视图>系统表>PG_FINE_DR_INFO/PG_STAT_LAST_OPERATION/PG_PUBLICATION/PG_PUBLICATION_REL/PG_PUBLICATION_NAMESPACE
  • 开发指南>系统表和系统视图>系统视图>PG_PUBLICATION_TABLES
  • SQL语法>DDL语法>CREATE TABLE
  • SQL语法>DML语法>LOCK
  • SQL语法>DDL语法>ALTER PUBLICATION/CREATE PUBLICATION/DROP PUBLICATION/ALTER SUBSCRIPTION/CREATE SUBSCRIPTION/DROP SUBSCRIPTION

GROUP BY后不需体现任何非聚合函数查询字段(8.2.0.101新增)

GUC参数behavior_compat_options新增disable_full_group_by_mysql选项,控制查询中GROUP BY后是否可以不体现任何非聚合函数查询字段。

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

distinct limit场景各DN limit数目返回优化(8.2.0.101新增)

新增GUC参数enable_agg_limit_opt,标识是否对select distinct col from table limit N场景优化。

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

单表查询性能优化,放开inlist roughcheck的限制(8.2.0.101新增)

新增GUC参数inlist_rough_check_threshold,控制IN条件中值的个数的最大值。

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

hstore冷热表特性优化(8.2.0.101新增)

HStore表支持冷热数据管理。

开发指南>实时数仓>实时数仓简介

PBE场景DN并行入库优化(8.2.0.102新增)

新增GUC参数enable_parallel_batch_insert,控制行存表和列存表是否开启并发入库功能。

开发指南>GUC参数>并行导入

行为变更

表2 行为变更

变更类型

序号

名称

变更描述

新增

1

支持windowagg生成value partition执行计划

窗口函数出现在语句的最外层,如果没有加order by,基线行为数据会是有序的,8.2.0版本默认开启enable_value_redistribute以后,数据会变成无序的,需要指定order by子句才能保证有序。

修改

2

异常规则配置方式变更,由工具变更为语法配置

异常规则原来由gs_cgroup对其对应的控制组做配置,8.2.0更改为CREATE/ALTER/DROP EXCEPT RULE语法配置,新版本使用gs_cgroup配置时会给出相应提示。

3

异常规则内部去除qualificationtime,以elapsedtime取代

qualificationtime在旧版本作为一个规则,但是只能与cpuskewpercent合并使用,效果和elapsedtime相同。因此去除该配置项,直接配置elapsedtime即可。

4

tid字段名

行存支持tid字段名,原行存不支持tid字段名。

5

max_process_memory

CN调整为DN的一半。

SQL语法

表3 SQL语法

变更类型

序号

名称

变更描述

新增

1

表属性参数analyze_mode

新增表级analyze模式的控制参数(该表支持哪种analyze),不设置时与前向无变化。

2

禁用子查询提升hint

增加禁用子查询提升hint,支持形式:no_merge当前查询,no_merge(relid)指定对象。

3

hint在DML语句中生效

增加支持hint在insert/update/merge/delete语句中生效。

4

agg重分布hint增加支持指定列名

agg重分布hint增加支持指定列名,形式为/+ redistribute ((*) (a b c d)) */。

5

agg重分布hint增加支持指定count(distinct)列

agg重分布hint支持指定count(distinct)列在双层hashagg场景下生效。

6

invisible

新增索引OPTIONS,用于设置索引扫描在执行计划中是否可见。

7

支持MySQL中的反引号

支持使用反引号区分普通字符和特殊字符。

8

创建表时,列定义支持指定on update属性

列定义指定on update属性时,当数据有更新时,自动填充更新时间戳。

9

CREATE/ALTER/DROP EXCEPT RULE

新增语法用于新增、创建、删除内核异常规则。

10

CREATE SERVER增加OPTIONS security_token

新增OPTIONS security_token用于传递securitytoken用于临时AK,SK访问OBS。

11

CREATE FOREIGN TABLE增加OPTIONS security_token

新增OPTIONS security_token用于传递securitytoken用于临时AK,SK访问OBS。

12

OBS外表(dist_fdw)option参数新增file_split_ threshold选项

OBS外表(dist_fdw)option参数新增file_split_ threshold选项。

13

GDS外表新增gds_compress参数

基于GDS管道文件导入导出,用于GDS互联互通时候数据在DN和GDS之间压缩传输,目前仅支持snappy压缩算法普通文件的导入导出不支持该参数。

14

GDS外表新增dataencoding参数

用于表示latin1数据库中保存的数据的字符集。

15

gc_fdw互联互通外表(sql on other gaussdb外表)新增gds_compress参数

用于GDS外表互联互通时候数据在DN和GDS之间压缩传输,目前仅支持snappy压缩算法。

16

gc_fdw互联互通外表(sql on other gaussdb)新增dataencoding参数

用于表示执行端laint1数据库中保存的数据的字符集。

修改

17

CREATE/ALTER REDACTION POLICY

表级参数deltarow_threshold的默认值设置为10000,指定列存表导入时小于多少行的数据进入delta表,只在表级参数enable_delta开启时生效。

18

资源池关联异常规则语法变更

新增INHERIT选项,说明策略是否继承自其他策略。

19

single_node支持obs外表语法

资源池旧版本可用于配置内存异常规则,8.2.0统一异常规则接口为

CREATE/ALTER RESOURCE POOL 'pool' with (EXCEPT_RULE='rule1,2');

20

OBS外表(dist_fdw)支持使用server指定AK、SK

single_node支持obs外表(dfs_fdw)。

关键字

表4 关键字

变更类型

序号

名称

变更描述

新增

1

TRY_CAST

新增非保留关键字TRY_CAST,用于兼容MySQL中的TRY_CAST函数,当类型转换失败时,返回NULL。

系统表

表5 系统表

变更类型

序号

名称

变更描述

新增

1

gs_blocklist_query

新增系统表用于保存黑名单语句和异常规则触发信息。

2

pg_except_rule

新增pg_except_rule系统表,用于存储当前集群所创建的异常规则信息,包括规则名称,具体规则阈值,以及规则触发的action。

修改

3

pg_redaction_policy,pg_redaction_column

新增inherited列,说明策略是否由用户手动创建

系统函数

表6 系统函数

变更类型

序号

名称

变更描述

新增

1

pg_stat_get_runtime_relstats

新增函数,开启动态采样后autoanalyze生成的表级统计信息存放于内存中,该函数用于查询。

2

pg_stat_get_runtime_attstats

新增函数,开启动态采样后autoanalyze生成的列级统计信息存放于内存中,该函数用于查询。

3

pg_stat_set_last_data_changed_num

新增手动设置表历史累计修改量接口,用于pgstat内容丢失的补救措施

4

strcmp()

字符串比较,相等返回0,小于返回-1,其他返回1,入参含null返回null

5

hex()

入参字符串的每个字符或十进制整数转化为十六进制数字。

6

unhex()

执行从HEX(str)的反向操作。就是说,它将参数中的每一对十六进制数字理解为一个数字,并将其转化为该数字代表的字符。结果字符以bytea的形式返回。

7

space(n)

返回n个空格构成的字符串

8

rand()

获取0.0 到 1.0 之间的随机数。

9

truncate(x,d)

将x截断为d位小数。d为负数时截断整数位为0。

10

addtime(expr1,expr2)

增加时间。expr1是time或timestamp类型,expr2是interval类型。

11

subtime(expr1,expr2)

特定时间减去指定的时间。expr1 - expr2

expr1为time、timestamp类型。expr2为interval类型,返回类型同expr1。

12

timediff(expr1,expr2)

计算两个参数的时间差。expr1 - expr2,返回time类型,

入参需同为time类型或timestamp类型。

13

curdate()

返回当前日期,date类型。

14

curtime([fsp])

返回当前时间,time类型 fsp-它指定返回的小数秒精度。

15

uuid()

返回通用唯一标识符(UUID)。

16

convert_tz()

进行时区转换。

17

cast(expr,typename)

将expr转换为指定type。

18

digest()

digest()函数可以根据不同的算法生成数据的二进制哈希值。

19

hmac()

hmac()函数可以根据不同的算法为带有密钥的数据计算出MAC值。

20

crypt()和gen_salt()

crypt()和gen_salt()函数专用于哈希密码。crypt()执行哈希用于加密数据,gen_salt()用于生成加盐哈希。

21

pgp_sym_encrypt()

用于对称密钥加密。

22

pgp_sym_decrypt()

用于解密PGP对称密钥加密后的消息。

23

pgp_pub_encrypt()

用于公共密钥加密。

24

pgp_pub_decrypt()

用于解密PGP公共密钥加密后的消息。

25

pgp_key_id()

用于提取PGP公钥或者私钥的密钥ID;如果传入一个加密后的消息,将会返回加密该消息使用的密钥ID。

26

armor()

用于将二进制数据转换为PGP ASCII-armor格式,相当于Base64加上CRC以及额外的格式化。

27

dearmor()

用于执行与armor()函数相反的转换。

28

pgp_armor_headers()

函数用于返回数据中的armor header。

29

encrypt

原始加密函数,不支持PGP加密的任何高级功能。IV是0。

30

decrypt

原始解密函数,不支持PGP加密的任何高级功能。IV是0。

31

encrypt_iv

原始解密函数,不支持PGP加密的任何高级功能。IV可由用户设定。

32

decrypt_iv

原始解密函数,不支持PGP加密的任何高级功能。IV可由用户设定。

33

gen_random_bytes

gen_random_bytes()函数用于生成具有强加密性的随机字节。

34

gen_random_uuid()

gen_random_uuid()函数用于返回一个version 4的随机UUID。

35

get_volatile_pg_class

获取内存中volatile临时表的pg_class相关元数据(volatile临时表元数据不存储系统表)。

36

get_volatile_pg_attribute

获取内存中volatile临时表的pg_attribute相关元数据。

37

gs_increase_except_num

新增函数,用于增加查询异常触发次数。

38

gs_update_blocklist_hash_info

新增函数用于更新内存中黑名单信息。

39

gs_append_blocklist

新增函数用于新增黑名单语句。

40

gs_remove_blocklist

新增函数用于将语句移出黑名单。

41

gs_wlm_rebuild_except_rule_hash

新增gs_wlm_rebuild_except_rule_hash函数用于主动触发build异常规则内核hash表。

42

pg_stat_wal_write

用于查询当前cn或dn上的线程信息,以及wal和数据页导入量及速率。

43

pgxc_stat_wal_write

用于查询cn与dn交互的线程信息,以及wal和数据页导入量及速率。

44

get_col_file_info

获取指定列存表的空CU文件数和总CU文件数。

45

get_all_col_file_info

获取所有列存表的空CU文件数和总CU文件数。

46

col_rebuild_file_relation

更换Relfilenode,重新整理指定列存表的CU文件,重整后变回连续的1GB文件。

修改

47

pg_query_audit/pgxc_query_audit

修改thread_id字段为session id字段,记录语句执行所在的session。

48

login_audit_messages/login_audit_messages_pid

新增session id字段,记录语句执行所在的session。

系统视图

表7 系统视图

变更类型

序号

名称

变更描述

新增

1

gs_obs_latency

新增视图用于监控OBS延迟。

2

pgxc_stat_wal

查询当前query的wal日志和数据页的流量信息。

3

pgxc_lockwait_detail

显示每个节点中锁等待链详细信息。

4

pgxc_wait_detail

显示所有节点SQL等待从上至下的等待链详细信息,包括wait_node、query等。

修改

5

gs_obs_read_traffic

OBS读写带宽视图,修改为按10分钟间隔聚集,增加logtime列显示时间分组。

6

gs_obs_write_traffic

OBS读写带宽视图,修改为按10分钟间隔聚集,增加logtime列显示时间分组。

GUC参数

表8 GUC参数

变更类型

序号

名称

变更描述

新增

1

enable_wlm_internal_memory_limit

控制是否打开wlm内部的限制,如:作业估算内存不超过80%/90%/40%的限制。

2

enable_strict_memory_expansion

控制作业是否在DN上做内存扩展。

3

allow_zero_estimate_memory

控制作业在没有统计信息情况下,是否允许将估算内存设置为0。

4

max_process_memory_auto_adjust

控制CM在主备切换情况下是否对max_process_memory做动态调整。

5

wlm_memory_feedback_adjust

控制CCN的动态负载管理中的内存负反馈功能是否开启,支持:on、off、on(50,40) 三种设置方式。

6

autoanalyze_mode

新增系统级autoanalyze模式的控制参数(默认normal与前向行为一致,设置为light则启用动态采样)。

7

enable_redactcol_computable

用于设置是否开启数据脱敏可算功能,默认关闭。

8

windowagg_pushdown_enhancement

控制窗口函数和group by同时出现时是否将partition by和group by的交集下推。

9

enable_from_collapse_hint

控制是否启用优先选择hint的计划,默认启用,并支持语句级hint参数。

10

enable_value_redistribute

用于设置是否使用value partition stream优化windowagg。

11

setop_optmode

控制setop操作的各个子查询分支是否做去重操作,默认值disable,即不去重,跟8.2.0之前版本保持一致;配置值force:强制走去重;配置值cost,基于cost选择是否去重。(注:setop分支的底层为stream算子的时候才会尝试去重)。

12

security_enable_options

表示安全模式下部分操作解禁,默认为空。

13

audit_object_name_format

控制审计日志中object_name字段显示对象名的格式,默认single,显示单对象。

14

enable_redactcol_equal_const

用于限制新版本脱敏下允许常量套取的行为,默认关闭,禁止脱敏列与常量做等值比较。

15

enable_mixedagg

用于控制是否生成Mixed Agg执行计划,默认关闭。

16

max_streams_per_query

用于控制对stream数量过多的plan在优化器阶段报错,避免stream建连占用过多连接,默认值10000。

17

agg_max_mem

用于控制Agg算子聚集列超过5个时,最大的估算内存,防止估算内存过大导致CCN排队。

18

max_volatile_memory

volatile临时表相关内存context的最大量,单位kb,取值范围1024-INT_MAX,默认1GB。

19

max_volatile_tables

单个session中volatile临时表(包括创建时的附属表,如toast、cudesc)的个数限制,默认300。

20

enable_hashfilter

用来控制是否可以生成hashfilter。

21

volatile_shipping_version

控制8.2.0版本sequence下推增强能力,默认1。

22

smp_thread_cost

用于控制生成的query_dop值。默认值为1000。

23

enable_wal_decelerate

用于带索引导入时的流控限速的总开关。

24

wal_decelerate_policy

用于表示触发限速后的行为策略。

25

wal_write_speed

用于表示单DN每个query每秒最大允许触发wal写入动作的速度Byte/s。

26

wal_decelerate_trigger_threshold

用于表示单DN每个query触发wal写入限速的门限。

27

enable_cstore_ring_buffer

控制是否开启列存RingBuffer。

28

enable_tsdb_multi_temperature

控制是否开启时序表的obs冷热功能,默认为关闭。

29

enable_tsdb_multi_temperature

控制是否开启时序表的obs冷热功能,默认为关闭。

30

ddl_lock_timeout

用于单独指定阻塞DDL语句等锁的时间,让DDL拿不到锁快速终止,只对八级锁有效,默认值为0,表示不生效。

31

build_backup_param

控制增量build过程中用于磁盘备份的最小满足规格。

修改

32

comm_tcp_mode

参数类型从POSTMASTER修改为SIGHUP。

33

max_process_memory

进程的最大内存,由POSTMASTER类型修改为SIGHUP;最小阈值为2G,不推荐设置为最小阈值。

34

rewrite_rule

新增eager_magicset枚举值控制magic set增强功能。

35

behavior_compat_options

behavior_compat_options新增normal_session_id取值,用于控制是否session id是否拼接node_name,默认关闭,session id拼接node_name。

36

behavior_compat_options

merge_into_with_trigger新增behavior_compat_options,开启后支持对有触发器的表执行MERGE INTO,默认关闭

37

behavior_compat_options

增加选项disable_jsonb_exact_match,控制操作符匹配规则,默认关闭;

参数关闭时,仅支持jsonb相关类型的精确匹配;若精确匹配失败,则会在剩余不含jsonb类型的备选中匹配;

参数打开时,行为回退,操作符匹配不区分类型;

38

hashjoin_spill_strategy

新增两种策略5,6。行为与原来0、1相同。原来0、1行为修改。从内表较大内存放不下,外表较小时进行内外表交换,改成内表较大内存放不下,继续划分内表,直到无法划分,再尝试内外表交换。

39

sql_use_spacelimit

对sql_use_spacelimit参数初始值进行设置。将其修改为当前实例所在磁盘的10%(上限),不足10G(下限)时,设置为10G

40

temp_file_limit

对temp_file_limit参数初始值进行设置。将其修改为当前实例所在磁盘的10%(上限),不足10G(下限)时,设置为10G。

删除

41

enable_grant_public

表示安全模式下不支持grant to public语法。

42

enable_grant_option

表示安全模式下不支持grant with grant option语法。

相关文档