云服务器内容精选

  • 8.1.3.325 表1 8.1.3.325新增功能/解决问题列表 类别 功能或问题描述 问题原因 问题出现版本 修复建议 新增功能 新增支持GB18030_2022的字符编码。 支持禁用子查询hint功能。 GDS外表兼容utf8非法字符。 - - - 解决问题 DN节点重启,日志截断,集群出现hang问题。 stream线程报错打印日志时,响应了cancel信号,再次打印日志会引发hang问题。 8.1.3.320 升级到8.1.3.325。 业务表创建偶现报错:relation “xxx” already exists。 业务偶现报错:could not read block xxx in file "xxx"。 OID使用超过42亿之后重新开始分配,在复用过程中引起业务偶现报错。 8.1.3.323及以下版本 DN备机checkpoint无法成功,导致备机xlog日志无法回收,持续堆积。 DN备机在redo checkpoint时,如果看到有不完整的btree分裂就会报告RM 11问题,实际上可能是btree分裂失败或者处于btree分裂过程中。 8.1.3.323及以下版本 列存表执行轻量化update和后台执行autovacuum并发操作时报错:Unsupported to update different rows with the same cuid and col in light update。 在轻量化update中,不支持使用相同的cuid和col更新不同的行。 8.1.3.323及以下版本 某些场景no_merge的hint操作不生效。 不支持禁用子查询hint功能。 8.1.3.323及以下版本 后台执行长时间查询语句时,通过CTRL + C方式结束语句未等语句彻底退出,又通过CTRL + Z方式退出gsql客户端,会导致语句残留。 CN收到CTRL + C的取消信号后,CN线程处于报错长跳转流程中,此时去调用EmitErrorReport,而EmitErrorReport未响应信号。 8.1.3.323及以下版本 使用大宽表与实时表做关联更新时出现内存占用率太高,影响性能。 使用大宽表与实时表做关联更新,更新时update会将无关列加上,导致执行计划做优化器估算时内存占用率太高,影响性能。 8.1.3.323及以下版本 ShareScan计划中,存放CTE的tuplestore和batchstore的内存不能扩展易产生下盘。 ShareScan执行计划结构体中的cteMaxMem未进行copy、read和write处理,导致DN上在CTE的执行计划上未获取到该值,导致创建的保存CTE结果集的tuplestore和batchstore无法进行内存扩展而下盘。 8.1.3.323及以下版本 执行列存轻量化update报错:could not determine data type of parameter。 在执行计划的Remote query中,创建parame参数为其在基表中的位置,且系统列也匹配不上该参数。 8.1.3.323及以下版本
  • 8.1.3.320 表3 8.1.3.320新增功能/解决问题列表 类别 功能或问题描述 问题原因 问题出现版本 修复建议 新增功能 truncate、exchange与select并发: 新增GUC参数ddl_select_concurrent_mode,该特性主要解决数据量较大或复杂查询的场景中,查询语句持续时间过长,阻塞DDL的场景,与Oracle效果一致。 支持场景: 支持truncate和select并发; 支持exchange和select并发。 场景约束: 与高级别的锁冲突(大于1级),不支持并发(比如autoanalyze_mode=normal时,同时select触发了autoanalyze); 与事务块中的锁冲突,不支持并发。 DWS常用连接方式约束: jdbc、odbc、python驱动时,如果程序设置了autocommit = false,不支持该特性; Data Studio下发的所有查询语句,自动起事务,不支持该特性。 - - - 支持控制LIMIT语句是否启用early stop优化: 新增GUC参数enable_limit_stop,控制LIMIT语句是否启用early stop优化。 - - - 解决问题 语句级估算内存超过max_process_memory限制,导致ccn排队。 语句级估算内存超过max_process_memory限制。 8.1.3.310及以下版本 升级到8.1.3.320及以上版本。具体升级策略请参见版本收编策略。 执行merge报错:value xxx is out of range for type integer。 pg_toast_get_baseid()函数中使用int接口处理OID。 8.1.3.310及以下版本 查询20万行数据大表的脏页率视图,内存占用大。 查询数据的时候,查询统计信息的内置函数中创建的链表内每个结点上申请了内存空间用于存放tupStatus,查询结束后,仅释放了链表上结点的内存,结点内申请的内存未释放。 8.1.1.x版本 Vacuum执行超时被查杀后,部分DN出现线程残留,无法响应信号,阻塞其他语句执行。 由于btvacuumscan中未响应信号,导致Vacuum执行超时被查杀后,部分dn出现线程残留,无法响应信号。 8.1.1.x版本 对MySQL兼容库中的分区表、时序表执行analyze百分比采样操作时报错:unsupported feature with temporary/unlogged table for partitioned table。 由于8.1.3版本中为了兼容MySQL中CREATE TABLE LIKE语法,默认继承模式为INCLUDING ALL,且执行analyze百分比采样时,含有自动创建临时复制表命令,导致analyze时出现报错。 8.1.3.310及以下版本 冷热表的select查询语句触发runtime autoanalyze,性能慢。 执行truncate partition,exchange partition,drop partition,alter distribute,alter column type这五种操作后,再执行select该表会触发autoanalyze。 8.1.3.310及以下版本 pg_session_wlmstat中elapsed_time与TOP SQL实际执行的时间不一致。 查询pg_session_wlmstat视图,语句处于RUNNING状态时elapsed_time过大。 8.0.x 给外表执行grant select权限时报错:has no distribute type。 obs dfs server只写外表没有指定默认的分布方式导致报错。 8.1.3.310及以下版本
  • 系统视图 表5 系统视图 变更类型 序号 名称 变更描述 新增 1 ALL_SYNONYMS DBA_SYNONYMS USER_SYNONYMS ALL_SYNONYMS视图存储了当前用户可访问的所有同义词信息。 DBA_SYNONYMS视图存储关于数据库下的所有同义词信息。需要有系统管理员权限才可以访问。 USER_SYNONYMS视图存储当前用户可访问的同义词信息。 2 REDACTION_POLICIES REDACTION_COLUMNS 分别对应两张系统表,将oid转为name直观显示策略信息。 3 GS_WORKLOAD_SQL_COUNT 显示当前节点上Workload控制组内的SQL语句执行次数的统计信息,包括SELECT、UPDATE、INSERT、DELETE语句的执行次数统计,以及DDL、DML、DCL类型语句的执行次数统计。 4 PGXC_WORKLOAD_SQL_COUNT 显示集群中所有CN节点上的Workload控制组内的SQL语句执行次数的统计信息,包括SELECT、UPDATE、INSERT、DELETE语句的执行次数统计,以及DDL、DML、DCL类型语句的执行次数统计。 5 GLOBAL_WORKLOAD_SQL_COUNT 显示集群中所有Workload控制组内SQL语句执行次数的统计信息,包括SELECT、UPDATE、INSERT、DELETE语句的执行次数统计,以及DDL、DML、DCL类型语句的执行次数统计。 6 GS_WORKLOAD_SQL_ELAPSE_TIME 显示当前节点上Workload控制组内SQL语句执行的响应时间的统计信息,包括SELECT、UPDATE、INSERT、DELETE语句的最大、最小、平均、以及总响应时间,单位为微秒。 7 PGXC_WORKLOAD_SQL_ELAPSE_TIME 显示集群中所有CN节点上Workload控制组内SQL语句执行的响应时间的统计信息,包括SELECT、UPDATE、INSERT、DELETE语句的最大、最小、平均、以及总响应时间,单位为微秒。 8 GLOBAL_WORKLOAD_SQL_ELAPSE_TIME 显示集群中所有Workload控制组内SQL语句执行的响应时间的统计信息,包括SELECT、UPDATE、INSERT、DELETE语句的最大、最小、平均、以及总响应时间,单位为微秒。 9 PGXC_INSTR_UNIQUE_SQL 展示集群中所有CN节点的Unique SQL的完整统计信息。 10 GS_INSTR_UNIQUE_SQL 显示当前节点收集的Unique SQL的执行信息。 修改 11 ALL_OBJECTS DBA_OBJECTS USER_OBJECTS 修改视图定义,扩展SYNONYM对象。 12 PGXC_THREAD_WAIT_STATUS 修改视图定义。 13 GS_SQL_COUNT 新增提供当前节点中所有用户执行的SELECT/UPDATE/INSERT/DELETE/MERGE INTO语句的响应时间的统计结果以及DDL、DML、DCL语句的计数结果。 14 PGXC_SQL_COUNT 新增提供集群中所有用户执行的SELECT/UPDATE/INSERT/DELETE/MERGE INTO语句的响应时间的统计结果以及DDL、DML、DCL语句的计数结果。 15 ALL_OBJECTS DBA_OBJECTS USER_OBJECTS 修改视图定义,增加对象的创建时间和最后修改时间。 16 PG_TABLES 修改视图定义,增加表的创建用户、创建时间和最后修改时间。
  • GUC参数 表7 GUC参数 变更类型 序号 名称 变更描述 新增 1 sql_use_spacelimit 设置单SQL语句在单个DN上最大存储空间限额。 2 remote_read_mode 设置远程读模式。 3 enable_incremental_catchup 设置是否打开增量catchup。 4 wait_dummy_time 增量catchup中等待从备启动或者从备发回扫描列表的最长时间。 5 enable_xlog_group_insert 用于指定在ARM平台下,xlog是否启动group的插入方式。 6 topsql_retention_time 该参数表示gs_wlm_session_info和gs_wlm_operator_info表中的数据能够保存的天数。 7 user_metric_retention_time 该参数表示用户历史资源监控数据能够保存的天数。 8 instance_metric_retention_time 该参数表示实例历史资源监控数据能够保存的天数。 9 enable_user_metric_persistent 该参数表示是否开启用户历史资源监控转存功能。 10 enable_instance_metric_persistent 该参数表示是否开启实例历史资源监控转存功能。 11 COMM_IPC 通信性能问题定位开关,该参数设置是否打印通信各个节点的报文收发情况。 12 COMM_PARAM 通信性能问题定位开关,该参数设置是否打印节点通信过程中session参数设置情况。 13 plan_cache_mode 控制cached plan的行为,可以强制走custom plan/generic plan/auto(和当前默认保持一致),默认值为auto。 修改 14 audit_system_object 扩展第18位表示是否审计SYNONYM对象,最大值修改为524287。 15 comm_max_stream 在一体机环境上,该参数集群安装之后,默认值修改为10000。 16 enable_dynamic_workload 默认值由off修改为on。 17 behavior_compat_options 增加成员convert_interval_to_text来控制,是否支持interval到text的隐式类型转换,默认不设置,不支持。
  • 系统函数 表4 系统函数 变更类型 序号 名称 变更描述 新增 1 dbms_redact.add_policy dbms_redact.alter_policy dbms_redact.enable_policy dbms_redact.disable_policy dbms_redact.drop_policy 新增脱敏策略。 更改脱敏策略信息,包括对一个表对象增加脱敏列、修改脱敏列脱敏方式等。 开启、关闭脱敏策略。 删除脱敏策略。 2 pgxc_get_workload_sql_count 提供当前集群所有CN上所有Workload控制组内执行的SELECT/UPDATE/INSERT/DELETE语句的计数统计结果以及DDL、DML、DCL类型语句的计数统计结果。 3 pgxc_get_workload_sql_elapse_time 提供当前集群所有CN上所有Workload控制组内执行的SELECT/UPDATE/INSERT/DELETE语句的响应时间统计结果。 4 get_instr_unique_sql 提供当前节点中收集的Unique SQL的信息。 5 reset_instr_unique_sql(cstring, cstring, INT8) 清理已收集的Unique SQL信息。 6 pgxc_get_instr_unique_sql 提供集群中所有CN上收集的Unique SQL的完整信息。 7 pg_check_authid 根据用户oid检查用户是否存在。 修改 8 pg_stat_get_sql_count 新增提供当前节点中所有用户执行的SELECT/UPDATE/INSERT/DELETE/MERGE INTO语句的响应时间的统计结果以及DDL、DML、DCL语句的计数结果。 9 pgxc_get_sql_count 新增提供所有节点中所有用户执行的SELECT/UPDATE/INSERT/DELETE/MERGE INTO语句的响应时间的统计结果以及DDL、DML、DCL语句的计数结果。
  • SQL语法 表1 SQL语法 变更类型 序号 名称 变更描述 新增 1 设置临时表空间限额 新增语法CREATE USER/ROLE user1 …TEMP SPACE ‘5GB',进行临时空间配额设置。 2 修改临时表空间限额 新增语法ALTER USER user1 TEMP SPACE ‘5GB’;,进行临时空间配额修改。 3 设置中间计算结果集落盘空间限额 新增语法CREATE USER/ROLE user1 … SPILL SPACE ‘unlimited;,进行中间结果集临时空间配额设置。 4 修改中间计算结果集落盘空间限额 新增语法ALTER USER user1 SPILL SPACE ‘5GB’;,进行中间结果集临时空间配额设置。 5 ALTER TABLE 新增语法:alter table modify not null [enable] / alter table modify null。 6 CREATE INDEX 新增语法:创建索引时支持索引名带schema。 7 ALTER SEQUENCE 新增语法:ALTER SEQUENCE。 8 CREATE SYNONYM 新增语法:CREATE [OR REPLACE] SYNONYM syn_name FOR obj_name。 9 DROP SYNONYM 新增语法:DROP SYNONYM IF EXISTS syn_name。 10 ALTER SYNONYM 新增语法:ALTER SYNONYM syn_name OWNER TO newowner。 11 CREATE USER/ROLE with ldap password disable 支持AD认证,创建用户时指定用户认证类型是ldap。 12 ALTER USER/ROLEwith ldap password disable 支持AD认证,修改用户认证类型为ldap。 13 copy 容错表参数选项增加 添加log errors data 选项以支持用户自定义选择是否。 填充rawrecord字段。 修改 14 GIN索引 300场景下禁止GIN索引。 删除 15 ALTER TABLE 分区表 exchange with unlogg表 禁止分区表与unlogged表做exchange交换。
  • 关键字 表2 关键字 变更类型 序号 名称 变更描述 新增 1 SYNONYM 新增非保留关键字SYNONYM。 2 VERIFY 新增保留关键字VERIFY。 3 FAST 新增非保留关键字FAST。 4 COMPLETE 新增非保留关键字COMPLETE。 修改 5 FUNCTION 关键字FUNCTION类型改为非保留关键字‘U’。 6 OVER 关键字OVER类型改为非保留关键字‘U’。 7 SPLIT 关键字SPLIT类型改为非保留关键字‘U’。 8 RETURN 关键字RETURN类型改为非保留关键字‘U’。 9 ISNULL 关键字ISNULL类型改为非保留关键字‘U’。
  • 系统表 表3 系统表 变更类型 序号 名称 变更描述 新增 1 PG_SYNONYM 新增系统表pg_synonym, 用于存储同义词对象与关联对象名间的映射关系。 2 PG_REDACTION_POLICY PG_REDACTION_COLUMN pg_redaction_policy用于存储对象脱敏策略,状态表达式等。 pg_redaction_column用于存储对象列信息,哪些列需要被脱敏,及脱敏方式。 3 PG_OBJECT 存储table/foreign table/view/index/sequence/function的创建时间、创建用户、最后修改时间。 修改 4 PG_AUTHID 增加一列authinfo标识用户的认证类型,默认是空,如果是AD用户,则是ldap。
  • GUC参数 表8 GUC参数 变更类型 序号 名称 变更描述 新增 1 space_readjust_schedule 用户、schema空间是否自动校准的参数,默认值:auto,支持范围:off/auto/auto(xxxK/M/G)。 2 space_once_adjust_num 空间管控和空间统计功能中,控制慢速构建与细粒度校准操作中每次处理的文件个数阈值,默认值:300。 3 tag_cache_max_number 该参数用于设置全局哈希表tag cache缓存item的最大阈值,默认值10000000。 4 enable_tagbucket_auto_adapt 该参数用于设置是否开启tagbucket自适应调整,默认值on。 5 cache_tag_value_num 该参数用于在tag列lateread场景时,设置缓存的tag元组数量,默认值60000。 6 buffer_ring_ratio 用于控制行存Ringbuffer的阈值和开关,默认值250,即1/4(250/1000),与以前逻辑一致。 7 enable_stream_ctescan 新增参数,升级默认关闭,新装默认打开。控制stream计划是否开启share scan功能。 8 behavior_compat_options 新增disable_including_all_mysql选项用于控制MySQL兼容模式下create table like语法是否为including all模式,默认不设置,create table like语法为including_all模式。 9 profile_logging_module 增加GUC参数profile_logging_module配置记录性能日志的类型,升级和新装均默认打开OBS,HADOOP,REMOTE_DATANODE,关闭MD。该参数方法与日志模块开关logging_module相同。 10 object_mtime_record_mode 控制pg_object记录修改时间的行为,默认保持老版本行为,新增选项可控制不记录分区/truncate/grant/revoke。 11 skew_option 控制是否使用优化策略。 12 ddl_lock_timeout 配置ddl锁超时的时间。 修改 13 rewrite_rule 新增选项orconversion,默认打开。 使用等值关联的OR条件优化规则。变更点:计划从nestloop转到hashjoin。 新增选项projection_pushdown,默认打开。 变更点:子查询/CTE/视图中未使用的列被优化删除。 14 default_orientation 新增userset guc参数default_orientation,用于控制用户默认建表(不设置orientation)的类型,参数有三种类型可以设置: 行存表(row),列存表(column),开启delta表的列存表(column enabledelta)。 15 max_process_memory 初始化安装时OM设置max_process_memory公式为:可用内存*0.7/(1+DN数),其中系数0.7改为0.8。老集群升级、扩容等场景不变。 16 enable_bloom_filter 复用原参数,现用于控制列存BloomFilter,默认值不变(打开)。 17 retry_ecode_list 默认值新增45003,主要是处理list分区表查询和add分区并发场景下,查询分区可能错位的问题。 18 auth_iteration_count 将默认值从50000减少到10000,新装、升级均会修改。参数表示客户端和服务端密码哈希迭代次数。
  • 系统视图 表6 系统视图 变更类型 序号 名称 变更描述 新增 1 pgxc_session_wlmstat 新增视图。 2 pg_comm_query_speed 新增视图,根据query_id查询发送信息。 3 pgxc_respool_resource_info pgxc_respool_runtime_info pgxc_respool_resource_history gs_respool_resource_info gs_respool_runtime_info 资源监控新增相关视图。 4 pgxc_wait_detail pgxc_lockwait_detail 新增pg_locks增强视图。 修改 5 DBA_PART_INDEXES DBA_PART_TABLES DBA_TAB_PARTITIONS USER_IND_PARTITIONS USER_PART_INDEXES USER_TAB_PARTITIONS 增加相关list分区描述。 6 pgxc_wlm_session_statistics 视图从所有CN查询TopSQL实时信息的逻辑由串行修改为并行,提升性能,功能不变。 7 all_indexes sys和pg_catalog下面的视图all_indexes定义存在问题,不同scheam下存在同名对象的场景下会导致结果集膨胀。
  • 行为变更 表7 行为变更 变更类型 序号 名称 变更描述 修改 1 create index目标表为时序表时 时序表创建的任何索引都会转换为tag表上的双索引,该双索引的索引列为指定的建索引的列。 2 负载管理新增二次管控 负载管理引入二次管控,提供更精细化的管控,FUNCTION、函数和多语句中包含复杂查询的可能触发多次管控,设置enable_transaction_parctl=off可以关闭二次管控,但同时会关闭事务块语句和多语句管控。 3 负载管理autoanalyze纳管 查询触发autoanalyze管控逻辑由不管控修改为管控,设置enable_transaction_parctl=off可以关闭autoanalyze管控。 4 用户监控视图pg_total_user_resource_info CPU/内存资源使用和限制全部修改为用户在集群内的资源使用和资源限制。 CPU、IO、内存监控规格变更:由只监控复杂作业修改为监控所有作业。 CPU监控逻辑变更:由cgroup监控修改为作业CPU监控汇总。 5 审计日志 1.事务内语句在未设置审计事务但设置审计对应语句类型时,仍进行审计。 2.DECLARE CURSOR语句在guc参数audit_operation_exec设置select时也进行审计。
  • 系统表 表4 系统表 变更类型 序号 名称 变更描述 新增 1 rb_added RoaringBitmap中增加一个值。 2 pg_partition pg_partition新增字段boundexprs。 3 pg_relfilenode_size 新增系统表。 4 pg_attribute pg_attribute新增attkvtype列,记录列的kvtype类型。 5 pg_collation 新增一条记录case_insensitive,用于支持大小写不敏感行为。
  • 关键字 表3 关键字 变更类型 序号 名称 变更描述 新增 1 MATERIALIZED with cte as后新增[NOT] MATERIALIZED语法。作为非保留关键字,不影响其作为其他对象名,作为列别名时需要加AS。 2 time_fill 用于时间填充表达式输出time_fill列,作为关键字,不能用作函数名和自定义数据类型名。 3 fill_first/fill_last/fill_avg 用于时间填充表达式,输出填充列,作为关键字,不能用作函数名和自定义数据类型名。 4 list 用于指定分区表类型,作为非保留关键字,不影响其作为其他对象名,作为列别名时需要加AS。 5 tsfield/tstag/tstime 用于指定时序表kvtype类型,作为非保留关键字,不影响其作为其他对象名,作为列别名时需要加AS。
  • 系统函数 表5 系统函数 变更类型 序号 名称 变更描述 新增 1 rb_build 将int数组转成一个bitmap类型。 2 rb_to_array rb_build的逆向操作,把RoaringBitmap转成int数组。 3 rb_and 两个RoaringBitmap做交集操作。 4 rb_or 两个RoaringBitmap做并集操作。 5 rb_xor 两个RoaringBitmap做异或操作。 6 rb_andnot 两个RoaringBitmap做and后取反。 7 rb_cardinality 计算一个RoaringBitmap的基数。 8 rb_and_cardinality 计算两个RoaringBitmap求and以后的基数。 9 rb_or_cardinality 计算两个RoaringBitmap求or以后的基数。 10 rb_xor_cardinality 计算两个RoaringBitmap求xor以后的基数。 11 rb_andnot_cardinality 计算两个RoaringBitmap求andnot以后的基数。 12 rb_is_empty 判断一个RoaringBitmap是否为空。 13 rb_equals 判断两个RoaringBitmap是否相等。 14 rb_intersect 判断两个RoaringBitmap是否相交。 15 rb_contain 判断第一个RoaringBitmap是否包含指定的值。 16 rb_add RoaringBitmap中增加一个值。 17 rb_remove RoaringBitmap中删除一个值。 18 rb_flip 翻转指定范围的RoaringBitmap。 19 rb_min 求一个RoaringBitmap的最小值。 20 rb_max 求一个RoaringBitmap的最大值. 21 rb_rank 返回Bitmap中小于等于指定Offset的基数。 22 rb_contain_rb 判断第一个RoaringBitmap是否包含第二个roaringbitmap。 23 rb_containedby_rb 判断第二个RoaringBitmap是否包含第一个roaringbitmap。 24 rb_containedby 判断指定的值是否被指定的roaringbitmap包含。 25 rb_iterate 返回RoaringBitmap对应的int 。 26 rb_and_agg 将RoaringBitmap列按照and逻辑做聚合。 27 rb_or_agg 将RoaringBitmap列按照or逻辑做聚合。 28 rb_xor_agg 将RoaringBitmap列按照xor逻辑做聚合。 29 rb_and_cardinality_agg 将RoaringBitmap列按照and逻辑做聚合后的基数。 30 rb_or_cardinality_agg 将RoaringBitmap列按照or逻辑做聚合后的基数。 31 rb_xor_cardinality_agg 将RoaringBitmap列按照xor逻辑做聚合后的基数。 32 rb_build_agg 将int列聚合成RoaringBitmap类型数据。 33 pgxc_wlm_readjust_relfilenode_size_table() 空间统计校准函数,不重建PG_RELFILENODE_SIZE系统表,重新校准用户和schema空间。 34 gs_table_distribution() 快速查询系统中表大小的函数。 35 pg_obs_cold_refresh_time 修改obs多温表自动切换任务时间。 36 gs_clean_tag_relation 清理tag表中无用的tagid行数据。该函数入参为时序表OID,每个分区遍历cudesc表tagid列的最小值,从而得到整个时序表tagid的最小值。 37 proc_drop_partition 用于将分区boundary时间超过TTL的分区进行drop。 38 proc_add_partition 用于为分区表创建分区。 39 pg_collation_actual_version 返回ICU排序规则的实际版本号。 40 first 分组内第一个元素。 41 last 分组内最后一个元素。 42 mode 分组内出现频率最高的值。 43 delta 相邻两行的差值。 44 percentile_of_value 近似百分位的值。 45 value_of_percentile 近似百分位。 46 spread 分组内最大值和最小值的差值。 47 pg_flush_buffers 刷出所有行存脏页。 修改 48 pg_stat_activity系列视图 pg_stat_get_activity_with_conninfo、pg_stat_activity、pgxc_stat_activity、pg_stat_get_activity视图新增stmt_type和lwtid列。 49 pg_authid系统表新增两行 新增pg_role_signal_backend,pg_role_read_all_stats预置角色。 50 vac_fileclear_relation 可以返回指定表真实清理文件的数量,不清理返回0。 51 vac_fileclear_all_relation 可以返回所有列存表真实清理文件的数量,不清理则返回0。
  • 新增功能 表1 8.1.3新增功能 特性 描述 参考文档 支持自增分区和分区表管理功能 分区管理新增PERIOD(interval类型)和TTL(interval类型) CREATE TABLE ALTER TABLE CREATE TABLE PARTITION 外表支持json格式 HDFS外表READ ONLY外表支持JSON文件格式。 OBS外表READ ONLY外表支持JSON文件格式。 CREATE FOREIGN TABLE (SQL on Hadoop or OBS) 跨集群互联互通特性 解除约束: 解除GDS的hang约束; 解除常用聚合函数约束:sum/count/min/max/avg等; 解除标量函数、分析函数约束; 增加互联互通外表与源表的列名、列类型强校验; 解除列名不可包含" WHERE "约束; 解除limit约束; 完善临时GDS外表策略; 本地集群是目标集群时,发起数据同步业务。 基于GDS的跨集群互联互通 冷热表功能增强 冷热自动搬迁。 CREATE TABLE IoT数仓功能增强 时序数据库满足IoT数据实时存储。 IoT场景下GUC参数 CREATE INDEX 函数和表达式 行存ring buffer可通过开关控制 ring buffer提供开关控制和阈值调整,大表批量更新不使用ring buffer buffer_ring_ratio 创建表时默认存储方式 通过default_orientation参数控制,创建表时,当不指定存储方式时,根据该GUC参数的值创建对应类型的表。 default_orientation GDS支持欧元符 GBK字符集支持欧元符。 CREATE DATABASE OBS外表支持XSKY S3 OBS外表适配XSKY,新增eol参数。 CREATE FOREIGN TABLE (SQL on Hadoop or OBS) SQL支持了位图功能(RoaringBitmap) 互联网、新零售、教育、游戏等行业,根据目标群体的特征, 快速提取目标群体,生成客户画像,当前的功能不能完全满足需求,需要SQL支持了位图功能(RoaringBitmap),更好支撑互联网业务常见的客户画像业务。 位图函数和操作符 RoaringBitmap类型 TD兼容支持不区分大小写 TD数据源迁移至DWS的大量存储过程涉及到去重操作,源数据中存在大量内容相同但是大小写不同的数据,DWS中使用distinct去重后会有大量重复数据,使用upper函数会改变源数据,存储过程数量多,逻辑复杂,手动修改难度大,需要增加DWS不区分大小写的特性。 排序规则支持 排序规则版本函数 List分区 分区表支持List分区。 相关语法: CREATE TABLE PARTITION ALTER TABLE PARTITION 系统表:PG_PARTITION 相关视图: DBA_PART_INDEXES DBA_PART_TABLES DBA_TAB_PARTITIONS USER_IND_PARTITIONS USER_PART_INDEXES USER_TAB_PARTITIONS MySQL兼容性增强 ALTER TABLE支持同时修改多个列。 ALTER TABLE支持COMMENT。 ALTER TABLE支持CHANGE、DROP KEY、DROP PARTITION和FIRST/AFTER。 ALTER INDEX、CREATE INDEX ALTER TABLE、CREATE TABLE ALTER TABLE PARTITION projection pushdown 对于多列视图场景,引用时自动去除无用的列,避免多余计算。 rewrite_rule新增projection pushdown描述。 share scan share scan stream计划CTE支持share scan: 新增enable_stream_ctescan logging_module增加取值STREAM_CTESCAN SELECT语法的WITH子句中增加可选的[[NOT] MATERIALIZED]支持是否物化语法。 列存Bloom Filter 外表侧同线程包含有HDFS内外表或列存表的HASH JOIN会触发Bloom Filter。 enable_bloom_filter 列存复制表支持UPDATE 客户有大量复制表的MERGE INTO操作,复制表支持UPDATE、DELETE和MERGE INTO等操作,跟行存表的功能对齐。 MERGE INTO UPDATE UPSERT 细粒度权限管理 新增表级权限Alter/Drop/Vacuum。 新增Schema级权限Alter/Drop。 新增预置角色role_signal_backend、role_read_all_stats。 预置角色 新增表级权限: VACUUM ALTER TABLE DROP TABLE 新增Schema级权限: ALTER SCHEMA DROP SCHEMA ALTER DEFAULT PRIVILEGES GRANT REVOKE 解决INSERT OVERWRITE多CN死锁问题 多CN同时出发INSERT OVERWRITE不会造成死锁。 - 执行计划优化 SQL关联条件含or,执行计划走nestloop导致性能差,改写为union all优化。 SQL存在关联,过滤条件中含or条件,列存表的关联前对or的条件剪枝。 集群DN数量较多时,大表与小表关联时,小表不走重分布操作而是走广播操作。 SQL调优关键参数调整 rewrite_rule新增projection_pushdown和or_conversion。 基于Relfile的空间统计与空间管控 pg_table_size、pg_relation_size、table_skewness等系列视图的查询能够秒级返回结果。 schema空间管控能够统计全量空间,解除当前约束。 user/schema空间管控校准函数能够快速执行,schema空间校准函数自动执行。 schema空间配额的SQL接口能够按照schema总空间分配而非DN级别。 空间管理 新增负载管理GUC参数: space_once_adjust_num space_readjust_schedule 新增系统表: PG_RELFILENODE_SIZE 新增函数: gs_table_distribution(schemaname text, tablename text) gs_table_distribution() pgxc_wlm_readjust_relfilenode_size_table() pgxc_wlm_readjust_relfilenode_size_table(integer) 性能定位定界增强专项 通信异常监测日志增强。 pgxc_stat_activity视图增强。 支持Top SQL与Unique SQL关联。 新增pg_session_wlmstat分布式视图 新增系统视图:PG_COMM_QUERY_SPEED PG_STAT_ACTIVITY补充“lwtid”和“stmt_type”字段描述。 GS_WLM_SESSION_HISTORY补充unique_sql_id字段信息。 新增系统视图:PGXC_SESSION_WLMSTAT。 资源负载管理优化重构 用户资源监控增强:用户资源监控逻辑整改。 资源监控增强:优化作业、用户资源监控,并增加队列级别资源监控。 用户资源监控 资源监控增强: 新增:资源池资源监控 新增系统视图: PGXC_RESPOOL_RESOURCE_INFO PGXC_RESPOOL_RUNTIME_INFO PGXC_RESPOOL_RESOURCE_HISTORY GS_RESPOOL_RESOURCE_INFO GS_RESPOOL_RUNTIME_INFO 新增系统表: GS_RESPOOL_RESOURCE_HISTORY 分区表特性修改 边界值个数约束修改:分区表的所有分区数不超过32767个,所有分区的边界值个数不大于32767个。 修改创建默认分区策略:建分区表时,将创建两个默认分区,这两个默认分区的分区时间范围均为PERIOD。 CREATE TABLE PARTITION Agg 重分布列Hint Oracle数仓迁移过程中,通过增强Hint特性手动指定分布列。 Plan Hint调优概述 Stream方式的Hint 新增除零返回NULL(8.1.3.110新增) MySQL兼容模式下,除数为0时,控制除法取余操作是否报错。参数behavior_compat_options新增兼容配置项enable_division_by_zero_mysql。 behavior_compat_options DDL锁超时配置(8.1.3.200新增) 新增GUC参数ddl_lock_timeout,可对DDL锁超时时间进行配置。 ddl_lock_timeout PG_LOCKS视图增强(8.1.3.200新增) 新增视图PGXC_WAIT_DETAIL和PGXC_LOCKWAIT_DETAIL 增加wait_on_pid、query_id等字段。 PGXC_WAIT_DETAIL PGXC_LOCKWAIT_DETAIL 数据脱敏可算不可见兼容配置(8.1.3.310新增) 新增GUC参数redact_compat_options,用于设置数据脱敏可算不可见兼容性行为配置项。 redact_compat_options truncate、exchange与select并发(8.1.3.320新增) 新增GUC参数ddl_select_concurrent_mode,该特性主要解决数据量较大或复杂查询的场景中,查询语句持续时间过长,阻塞DDL的场景,与Oracle效果一致。 支持场景: 支持truncate和select并发; 支持exchange和select并发。 场景约束: 与高级别的锁冲突(大于1级),不支持并发(比如autoanalyze_mode=normal时,同时select触发了autoanalyze); 与事务块中的锁冲突,不支持并发。 DWS常用连接方式约束: jdbc、odbc、python驱动时,如果程序设置了autocommit = false,不支持该特性; Data Studio下发的所有查询语句,自动起事务,不支持该特性。 ddl_select_concurrent_mode 支持控制LIMIT语句是否启用early stop优化(8.1.3.320新增) 新增GUC参数enable_limit_stop,控制LIMIT语句是否启用early stop优化。 enable_limit_stop early stop功能行为变更(8.1.3.322新增) GUC参数enable_limit_stop默认值改为on。 enable_limit_stop