8.1.1版本说明
【V8.1.1.500版本发布时间】:2022年06月20日
【V8.1.1.300版本发布时间】:2022年04月15日
【V8.1.1.205版本发布时间】:2022年03月30日
【V8.1.1.203版本发布时间】:2022年03月18日
【V8.1.1.202版本发布时间】:2022年02月24日
【V8.1.1.201版本发布时间】:2022年01月25日
【V8.1.1.200版本发布时间】:2021年12月09日
【V8.1.1.100版本发布时间】:2021年07月30日
8.1.1.200、8.1.1.201、8.1.1.202、8.1.1.203、8.1.1.205、8.1.1.300、8.1.1.500与8.1.1.100的集群的数据库内核功能保持一致,仅增加管理控制台的功能适配,新适配功能请参见最新动态。
新增功能
特性 |
描述 |
参考文档 |
---|---|---|
集群支持2048节点规格 |
支持2048集群节点数 |
技术指标 |
资源监控性能优化 |
|
|
运维调度框架(支持分段离线扩容、半在线扩容、在线扩容,以及为vacuum full、analyze、每日巡检留接口) |
|
|
全量build优化 |
|
|
UPDATE轻量化 |
|
|
列存支持主键CU |
列存表支持主键约束 |
|
垃圾空间管理 |
新增GUC参数bi_page_reuse_factor |
bi_page_reuse_factor |
GDS产品化 |
新增系统视图PGXC_BULKLOAD_PROGRESS、PGXC_BULKLOAD_STATISTICS、PG_BULKLOAD_STATISTICS |
|
数据多温度存储特性 |
|
|
国密算法SM4 CBC模式的C函数 |
安全函数新增gs_encrypt(encryptstr, keystr, cryptotype, cryptomode, hashmethod)、gs_decrypt(decryptstr, keystr,cryptotype, cryptomode, hashmethod)和gs_hash(hashstr, hashmethod) 修改gs_encrypt_aes128(encryptstr,keystr)和gs_decrypt_aes128(decryptstr,keystr)的说明 |
安全函数 |
中位数median内置函数支持 |
新增函数median(expression) |
聚集函数 |
存在视图的表进行级联删除功能调整 |
|
|
支持自定义数据脱敏规则 |
|
|
数据库用户密码到期强制更改后才能登录 |
|
|
hash表适当增大处理 |
新增GUC参数expand_hashtable_ratio |
expand_hashtable_ratio |
SMP自适应默认打开 |
新增“SMP相关参数配置建议” |
SMP相关参数配置建议 |
explain默认显示为pretty |
修改explain默认显示为pretty格式。 新增算子中过滤及投影时间统计,显示位置与算子执行时间同行。 |
SQL执行计划详解 |
并发SMP增强 |
|
|
row2vec优化 |
新增GUC参数enable_row_fast_numeric |
enable_row_fast_numeric |
MySQL兼容性 |
|
|
支持UPSERT |
新增语法UPSERT INSERT语法补充IGNORE、AS、ON DUPLICATE KEY、ON CONFLICT |
UPSERT |
支持视图的insert、update、delete功能 |
CREATE VIEW新增“可更新的视图”内容 |
CREATE VIEW |
一键式现场信息收集 |
EXPLAIN语法新增STATS boolean参数 |
EXPLAIN |
一键式锁等待关系分析 |
|
|
char类型空串拼接兼容 |
behavior_compat_option参数新增bpchar_text_without_rtrim配置项 |
behavior_compat_options |
慢节点检测 |
新增告警“集群节点运行慢(ALM_AI_SLOWNODE)” |
故障处理>告警参考 |
支持Python 3.x |
支持python3 |
使用GDS从远端服务器导入数据 |
to_date与to_timestamp处理空串时返回0001-01-01,而TD返回null |
|
|
支持insert overwrite |
INSERT语法支持overwrite |
INSERT |
获得当前用户查询的全部视图 |
新增视图GS_VIEW_DEPENDENCY_PATH |
GS_VIEW_DEPENDENCY_PATH |
支持percentile_disc、percentile_cont |
新增聚集函数: percentile_disc(const) within group(order by expression) percentile_cont(const) within group(order by expression) |
聚集函数 |
SQL语法
变更类型 |
序号 |
名称 |
变更描述 |
---|---|---|---|
新增 |
1 |
LIMIT offset,count |
支持LIMIT offset,count语法。 |
2 |
EXPLAIN(STATS ON)... |
支持EXPLAIN(STATS ON)... 语法,用于导出计划复现的相关信息。 |
|
3 |
CREATE/ALTER/DROP REDACTION POLICY |
新增脱敏DDL语法。 |
|
4 |
INSERT IGNORE INTO INSERT INTO ON DUPLICATE KEY UPDATE INSERT INTO ON CONFLICT DO UPDATE INSERT INTO ON CONFLICT DO NOTHING |
支持UPSERT功能。 |
|
5 |
INSERT OVERWRITE INTO |
INSERT OVERWRITE覆盖导入功能。 |
|
6 |
ALTER TABLE REFRESH STORAGE |
进行冷热表的冷热切换,将热数据变冷。 |
|
7 |
ALTER VIEW ONLY view_name REBUILD |
alter view only viewname REBUILD。 |
|
8 |
ALTER SERVER REFRESH |
用于HDFS配置变动时,刷新HDFS SERVER的配置文件。 |
|
修改 |
9 |
操作符^ |
MySQL兼容模式下处理为异或,ora/td模式为幂运算。 |
10 |
MERGE INTO |
MERGE INTO语句的目标表上包含触发器时报错。 |
|
11 |
CREATE/ALTER Table |
新增Reloptions中cold_tablespace和storage_policy冷热表相关的选项。 |
关键字
变更类型 |
序号 |
名称 |
变更描述 |
---|---|---|---|
新增 |
1 |
TIMESTAMPDIFF |
新增关键字为COL_NAME_KEYWORD。 |
2 |
IFNULL |
新增关键字为COL_NAME_KEYWORD。 |
|
3 |
REFRESH |
非保留关键字。 |
|
修改 |
4 |
IF |
由UNRESERVED_KEYWORD改为COL_NAME_KEYWORD。 |
5 |
ISNULL |
由UNRESERVED_KEYWORD改为COL_NAME_KEYWORD。 |
|
6 |
VERIFY |
由保留关键字变为非保留关键字。 |
系统表
变更类型 |
序号 |
名称 |
变更描述 |
---|---|---|---|
修改 |
1 |
PG_REDACTION_COLUMN |
新增func_expr字段。 |
2 |
PG_AUTHID |
增加rolpwdexpire和rolpwdtime字段。 |
系统函数
变更类型 |
序号 |
名称 |
变更描述 |
---|---|---|---|
新增 |
1 |
pgxc_wlm_readjust_schema_space() |
Schema空间并行校准函数。 |
2 |
pgxc_wlm_get_schema_space() |
查询集群Schema空间信息。 |
|
3 |
pgxc_wlm_analyze_schema_space() |
分析集群Schema空间信息。 |
|
4 |
gs_roach_enable_delay_ddl_recycle |
按照备份集的名称来开启延迟DDL。 |
|
5 |
gs_roach_disable_delay_ddl_recycle |
按照备份集的名称来关闭延迟DDL。 |
|
6 |
gs_roach_stop_backup |
按照备份集名称停止行存备份操作。 |
|
7 |
gs_roach_switch_xlog |
switch xlog时是否执行checkpoint。 |
|
8 |
pgxc_get_lock_conflicts() |
返回各节点上存在冲突的锁信息。 |
|
9 |
mask_none/mask_full/mask_partial |
新增内置脱敏函数。 |
|
10 |
median |
中位数agg函数。 |
|
11 |
pgxc_node_stat_reset_time() |
查询每个节点的重置时间。 |
|
12 |
pgxc_rel_iostat() |
查询各节点IO统计信息。 |
|
13 |
pgxc_redo_stat() |
查询各节点Redo统计信息。 |
|
14 |
pgxc_instance_time() |
查询各实例时间统计信息。 |
|
15 |
pgxc_settings() |
查询各节点GUC设置情况。 |
|
16 |
pgxc_replication_slots() |
查询各节点复制slot统计信息。 |
|
17 |
pgxc_stat_replication() |
查询各节点replication统计信息。 |
|
18 |
pgxc_stat_bgwriter() |
查询各节点bgwriter统计信息。 |
|
19 |
pgxc_wait_events() |
查询各节点等待事件统计信息。 |
|
20 |
pgxc_os_run_info() |
查询各实例所在机器OS性能统计信息。 |
|
21 |
get_node_stat_reset_time() |
查询当前节点状态重置时间。 |
|
22 |
get_local_rel_iostat() |
查询当前节点IO统计信息。 |
|
23 |
get_instr_wait_event() |
查询当前节点等待事件统计信息。 |
|
24 |
pg_stat_get_db_total_blk_write_time() |
查询块写入总时间。 |
|
25 |
pg_stat_get_db_total_blk_read_time() |
查询块读取总时间。 |
|
26 |
pg_stat_get_db_total_temp_bytes() |
查询临时文件总大小。 |
|
27 |
pg_stat_get_db_total_temp_files() |
查询临时文件总数。 |
|
28 |
pg_stat_get_db_total_deadlocks() |
查询死锁总数。 |
|
29 |
pg_stat_get_db_total_conflict_all() |
查询冲突总数。 |
|
30 |
pg_stat_get_db_total_tuples_deleted() |
查询删除元组总数。 |
|
31 |
pg_stat_get_db_total_tuples_updated() |
查询更新元组总数。 |
|
32 |
pg_stat_get_db_total_tuples_inserted() |
查询插入元组总数。 |
|
33 |
pg_stat_get_db_total_tuples_fetched() |
查询fetch元组总数。 |
|
34 |
pg_stat_get_db_total_tuples_returned() |
查询return元组总数。 |
|
35 |
pg_stat_get_db_total_blocks_hit() |
查询内存命中数据块总数。 |
|
36 |
pg_stat_get_db_total_blocks_fetched() |
查询读取数据块总数。 |
|
37 |
pg_stat_get_db_total_xact_rollback() |
查询rollback事务总数。 |
|
38 |
pg_stat_get_db_total_xact_commit() |
查询commit事务总数。 |
|
39 |
pg_stat_get_db_total_numbackends() |
查询当前backend总数。 |
|
40 |
gs_encrypt() |
加密函数。 |
|
41 |
gs_decrypt() |
解密函数。 |
|
42 |
gs_hash() |
哈希函数。 |
|
43 |
gs_password_expiration() |
查询当前用户的密码剩余时间(对应系统表pg_authid中的rolpwdtime和rolpwdexpire)。 |
|
44 |
to_char(date) |
新增to_char(date)函数,兼容TD模式下to_char处理date类型时间戳的返回格式。 |
|
45 |
gs_wlm_set_queryband_action |
设置query_band负载行为。 |
|
46 |
gs_wlm_set_queryband_order |
设置query_band搜索优先级。 |
|
47 |
gs_wlm_get_queryband_action |
查询query_band负载行为。 |
|
48 |
CONCAT |
新增MYSQL兼容规则,入参含NULL则返回NULL。 |
|
49 |
TIMESTAMPDIFF |
支持TIMESTAMPDIFF函数返回指定单位的时间差。 |
|
50 |
TO_DAYS |
支持TO_DAYS函数返回输入时间到0的天数差 |
|
51 |
DATE_FORMAT |
支持DATE_FORMAT函数用于将输入日期时间转化为指定格式的字符串,格式为%开头的MYSQL形式。 |
|
52 |
IF |
实现IF函数,根据首个输入返回对应值。 |
|
53 |
IFNULL |
实现IFNULL函数,返回首个非NULL值。 |
|
54 |
ISNULL |
实现ISNULL函数,判断输入是否为NULL。 |
|
修改 |
55 |
pg_resume_bkp_flag |
用于备份恢复获取delay ddl标志。 |
56 |
pg_query_audit |
审计日志记录新增五个字段:begintime、operation_type、command_text、transaction_xid、query_id;变更原字段:将原time变更为endtime,将原type变更为audit_type。另将原detail_info下存放的操作命令移至command_text,而detail_info存放命令执行结果。 |
|
57 |
pg_delete_audit |
基于安全考虑,不允许提供删除审计日志的接口,调用此函数将直接报错。 |
|
58 |
log() |
对数函数,ora/td模式下表现为底为10的对数,mysql兼容模式下表现为自然对数。 |
|
59 |
to_number |
to_number函数原来调用numeric_in函数,现修改成调用to_number函数,兼容TD模式下to_number函数空串处理返回null。 |
|
60 |
left() |
字符串截取,当入参是负数时,ora/td模式下返回除最后|n|个字符以外的所有字符,mysql兼容模式下返回空串。 |
|
61 |
right() |
字符串截取,当入参是负数时,ora/td模式下返回除前|n|个字符以外的所有字符,mysql兼容模式下返回空串。 |
|
62 |
last_day |
入参增加timestamptz类型,mysql兼容模式下返回类型处理为date类型,ora/td模式返回timestamp。 |
|
63 |
next_day |
入参增加timestamptz类型,mysql兼容模式下返回类型处理为date类型,ora/td模式返回timestamp。 |
|
64 |
add_months |
入参增加timestamptz类型,mysql兼容模式下返回timestamptz类型,ora/td模式返回timestamp类型。 |
|
65 |
add_months |
入参增加date类型,mysql兼容模式下返回date类型,ora/td模式返回timestamp类型。 |
|
66 |
pg_cbm_recycle_file |
增加参数,支持备份和容灾并行特性对cbm的回收支持。 |
|
67 |
pgxc_query_audit |
新增字段:begintime、operation_type、command_text、transaction_xid、query_id;修改原字段:将原time变更为endtime,将原type变更为audit_type。另将原detail_info下存放的操作命令移至command_text,而detail_info存放命令执行结果。 |
|
68 |
login_audit_messages |
增强审计日志特性适配。 |
|
删除 |
69 |
add_policy/drop_policy/alter_policy/enable_policy/disable_policy |
删除脱敏旧的接口。 |
系统视图
变更类型 |
序号 |
名称 |
变更描述 |
---|---|---|---|
新增 |
1 |
GS_WLM_SQL_ALLOW |
新增视图供用户查询当前已设置的白名单。 |
2 |
PG_TOTAL_SCHEMA_INFO |
查询节点Schema空间信息。 |
|
3 |
PGXC_TOTAL_SCHEMA_INFO |
查询集群Schema空间信息。 |
|
4 |
PGXC_TOTAL_SCHEMA_INFO_ANALYZE |
分析集群Schema空间信息。 |
|
5 |
PGXC_LOCK_CONFLICTS |
查询各节点上存在冲突的锁信息。 |
|
6 |
PGXC_DEADLOCK |
返回处于分布式死锁中的锁等待信息(包括锁定对象、持锁对象和等锁对象的信息)。 |
|
7 |
PGXC_NODE_STAT_RESET_TIME |
显示每个节点的重置时间。 |
|
8 |
GS_NODE_STAT_RESET_TIME |
显示当前节点的重置时间。 |
|
9 |
GLOBAL_STAT_DATABASE |
显示database全局统计信息。 |
|
10 |
GLOBAL_REL_IOSTAT |
显示全局IO统计信息。 |
|
11 |
PGXC_REL_IOSTAT |
显示各节点IO统计信息。 |
|
12 |
GS_REL_IOSTAT |
显示当前节点IO统计信息。 |
|
13 |
GLOBAL_REDO_STAT |
显示全局Redo统计信息。 |
|
14 |
PGXC_REDO_STAT |
显示各节点Redo统计信息。 |
|
15 |
GLOBAL_WORKLOAD_TRANSACTION |
显示全局workload事务统计信息。 |
|
16 |
PGXC_INSTANCE_TIME |
显示各实例时间统计信息。 |
|
17 |
PGXC_SETTINGS |
显示各节点GUC设置情况。 |
|
18 |
PGXC_REPLICATION_SLOTS |
显示各节点复制slot统计信息。 |
|
19 |
PGXC_STAT_REPLICATION |
显示各节点replication统计信息。 |
|
20 |
PGXC_STAT_BGWRITER |
显示各节点bgwriter统计信息。 |
|
21 |
PGXC_WAIT_EVENTS |
显示各节点等待事件统计信息。 |
|
22 |
GS_WAIT_EVENTS |
显示当前节点等待事件统计信息。 |
|
23 |
PGXC_OS_RUN_INFO |
显示各实例所在机器OS性能统计信息。 |
|
24 |
PG_LIFECYCLE_DATA_DISTRIBUTE |
获取obs冷热表的数据分布情况统计。 |
|
25 |
PG_BULKLOAD_STATISTICS |
对函数pg_stat_get_node_bulkload_statistics封装。 |
|
26 |
PGXC_BULKLOAD_STATISTICS |
对函数pgxc_stat_get_node_bulkload_statistics封装。 |
|
27 |
PGXC_BULKLOAD_PROGRESS |
基于视图pgxc_bulkload_statistics查询结果进行聚合,计算GDS业务进度百分比。 |
|
28 |
PG_QUERYBAND_ACTION |
查询所有query_band负载行为。 |
|
29 |
GS_VIEW_DEPENDENCY_PATH |
级联查询视图的依赖关系。 |
|
修改 |
30 |
REDACTION_COLUMNS |
修改系统视图定义,新增一列function_infos。 |
31 |
PGXC_GET_TABLE_SKEWNESS |
修复了视图PGXC_GET_TABLE_SKEWNESS不显示round-robin表的问题。 |
|
32 |
PGXC_STAT_DATABASE |
显示各实例上的Database统计信息。 |
行为变更
变更类型 |
序号 |
名称 |
变更描述 |
---|---|---|---|
修改 |
1 |
not-null/check约束冲突时不打印整行数据的detail |
not-null/check约束冲突时不打印整行数据的detail。 |
2 |
兼容C80行为默认不匹配interval到text隐式类型转换 |
behavior_compat_options设置enable_interval_to_text后支持该隐式类型转换。 |
|
3 |
date类型 |
ora兼容模式下,date类型反解析为pg_catalog.date。 |
|
4 |
agg计划 |
agg生成stream计划时输出所需列。 |
|
5 |
median配套collate使用 |
禁用median/percentile_cont/percentile_disc中使用collate。 |
|
6 |
多列分区的修改 |
调整分区修改时的多列边界检查规则,当某一列的边界值为maxvalue则忽略后面其他列的边界值。 |
|
7 |
enable_nestloop为off时无关联条件时的计划生成 |
对于两个表无等值关联条件,但与其它表存在等值关联条件,且join的行数膨胀时,原来可以走nestloop,修复完走不了nestloop的计划;对于不支持hashjoin的等值join列,mergejoin也为off时,会导致nestloop代价变化,原来走nestloop+indexscan的会变成nestloop+materialize。 |
GUC参数
变更类型 |
序号 |
名称 |
变更描述 |
---|---|---|---|
新增 |
1 |
behavior_compat_options |
|
2 |
debug_group_dop |
可以设定每个stream group的dop,用于在SMP自适应时进行语句级调优使用。默认为空。 |
|
3 |
enable_row_fast_numeric |
行存表numeric落盘为bigint格式。 |
|
4 |
expand_hashtable_ratio |
hash表动态扩展。 |
|
5 |
query_dop_ratio |
新增逻辑dop依据系统资源和代价进行判断,当判断不准时增加参数进行逃生。默认为1。 |
|
6 |
show_unshippable_warning |
新增参数,控制是否将不下推日志打印到客户端,默认关闭。 |
|
7 |
assign_abort_xid |
新增session级别参数,当客户误删(delete)数据后,进行快速有损恢复。默认值为空字符串。此guc参数的意思是需回滚指定xid提交的事务。 |
|
8 |
bi_page_reuse_factor |
批插页重用时空闲fsm因子(0表示回到旧逻辑)。 |
|
9 |
check_cu_size_threshold |
userset级别,列存表插入时,如果一个CU里插入的数据量大于check_cu_size_threshold,启用行大小校验,避免产生大于1G的CU。 |
|
10 |
enable_light_colupdate |
userset级别,表明是否使用轻量化update。 |
|
修改 |
11 |
cost_model_version |
增加参数值2,默认值1不变。小于2时analyze固定值采样使用原始函数,大于2时固定值采样使用增强随机性的优化函数。 |
12 |
expected_computing_nodegroup |
就地升级后设置expected_computing_nodegroup为bind。 |
|
13 |
query_dop |
新安装集群默认值修改为1,升级集群维持原默认值不变。 |