8.1.3版本新增功能
8.1.3.x版本新增功能参见新增功能,各补丁解决问题列表参见8.1.3.x补丁新增功能及解决问题。
【V8.1.3.336版本发布时间】:2024年10月15日
【V8.1.3.333版本发布时间】:2024年06月30日
【V8.1.3.330版本发布时间】:2024年03月16日
【V8.1.3.325版本发布时间】:2023年11月02日
【V8.1.3.323版本发布时间】:2023年10月16日
【V8.1.3.322版本发布时间】:2023年08月04日
【V8.1.3.321版本发布时间】:2023年06月26日
【V8.1.3.320版本发布时间】:2023年05月19日
【V8.1.3.310版本发布时间】:2023年03月09日
【V8.1.3.300版本发布时间】:2022年12月19日
【V8.1.3.200版本发布时间】:2022年10月31日
【V8.1.3.110版本发布时间】:2022年08月23日
【V8.1.3.100版本发布时间】:2022年06月20日
【V8.1.3版本发布时间】:2022年04月15日
新增功能
特性 |
描述 |
参考文档 |
---|---|---|
支持自增分区和分区表管理功能 |
分区管理新增PERIOD(interval类型)和TTL(interval类型) |
|
外表支持json格式 |
|
|
跨集群互联互通特性 |
|
|
冷热表功能增强 |
冷热自动搬迁。 |
|
行存ring buffer可通过开关控制 |
ring buffer提供开关控制和阈值调整,大表批量更新不使用ring buffer |
|
GDS支持欧元符 |
GBK字符集支持欧元符。 |
|
OBS外表支持XSKY S3 |
OBS外表适配XSKY,新增eol参数。 |
|
SQL支持了位图功能(RoaringBitmap) |
支持位图功能(RoaringBitmap),更好支撑互联网业务常见的客户画像业务。 |
|
TD兼容支持不区分大小写 |
TD数据源迁移至DWS的大量存储过程涉及到去重操作,源数据中存在大量内容相同但是大小写不同的数据,DWS中使用distinct去重后会有大量重复数据,使用upper函数会改变源数据,存储过程数量多,逻辑复杂,手动修改难度大,需要增加DWS不区分大小写的特性。 |
|
List分区 |
分区表支持List分区。 |
|
MySQL兼容性增强 |
ALTER TABLE支持同时修改多个列。 ALTER TABLE支持COMMENT。 ALTER TABLE支持CHANGE、DROP KEY、DROP PARTITION和FIRST/AFTER。 |
|
projection pushdown |
对于多列视图场景,引用时自动去除无用的列,避免多余计算。 |
rewrite_rule新增projection pushdown描述。 |
share scan |
share scan |
stream计划CTE支持share scan: logging_module增加取值STREAM_CTESCAN SELECT语法的WITH子句中增加可选的[[NOT] MATERIALIZED]支持是否物化语法。 |
列存Bloom Filter |
外表侧同线程包含有HDFS内外表或列存表的HASH JOIN会触发Bloom Filter。 |
|
列存复制表支持UPDATE |
复制表支持UPDATE、DELETE和MERGE INTO等操作。 |
|
细粒度权限管理 |
|
|
解决INSERT OVERWRITE多CN死锁问题 |
多CN同时触发INSERT OVERWRITE不会造成死锁。 |
- |
执行计划优化 |
|
rewrite_rule新增projection_pushdown和or_conversion。 |
基于Relfile的空间统计与空间管控 |
|
|
性能定位定界增强专项 |
|
|
资源负载管理优化重构 |
|
|
分区表特性修改 |
|
|
Agg重分布列Hint |
Oracle数仓迁移过程中,通过增强Hint特性手动指定分布列。 |
|
新增除零返回NULL(8.1.3.110新增) |
MySQL兼容模式下,除数为0时,控制除法取余操作是否报错。参数behavior_compat_options新增兼容配置项enable_division_by_zero_mysql。 |
|
DDL锁超时配置(8.1.3.200新增) |
新增GUC参数ddl_lock_timeout,可对DDL锁超时时间进行配置。 |
|
PG_LOCKS视图增强(8.1.3.200新增) |
|
|
数据脱敏可算不可见兼容配置(8.1.3.310新增) |
新增GUC参数redact_compat_options,用于设置数据脱敏可算不可见兼容性行为配置项。 |
|
truncate、exchange与select并发(8.1.3.320新增) |
新增GUC参数ddl_select_concurrent_mode,该特性主要解决数据量较大或复杂查询的场景中,查询语句持续时间过长,阻塞DDL的场景,与Oracle效果一致。 支持场景:
场景约束:
DWS常用连接方式约束:
|
|
支持控制LIMIT语句是否启用early stop优化(8.1.3.320新增) |
新增GUC参数enable_limit_stop,控制LIMIT语句是否启用early stop优化。 |
|
early stop功能行为变更(8.1.3.322新增) |
GUC参数enable_limit_stop默认值改为on。 |
|
normalize_negative_zero(8.1.3.333新增) |
behavior_compat_options参数中新增选项normalize_negative_zero,控制ceil(),round()函数在处理float类型特定值时返回-0与否。 |
开发指南 > GUC参数> 其他选项 >behavior_compat_options |
internal_compat_options (8.1.3.333新增) |
新增参数GUC参数internal_compat_options控制数据库兼容性行为配置项。其中light_proxy_permission_compat选项用于light Proxy场景下嵌套查询权限配置项。 |
开发指南 > GUC参数>其他选项 |
disable_client_detection_commit (8.1.3.333新增) |
behavior_compat_options参数中新增disable_client_detection_commit选项,控制是否在每次事务提交之前,检测与客户端的连接是否存在。 |
开发指南 > GUC参数> 其他选项 >behavior_compat_options |
enable_stream_ctescan新装默认关闭 (8.1.3.333修改) |
修改enable_stream_ctescan参数,升级前向兼容,新装默认关闭。 |
开发指南 > GUC参数> 优化器方法配置 |
enable_trunc_orc_string (8.1.3.336新增) |
控制orc格式外表字段为varchar(n),但是orc文件字段类型为string,且string长度超过n时,外表查询的行为。 |
开发指南 > GUC参数> 其他选项 >behavior_compat_options |
gds_fill_multi_missing_fields (8.1.3.336新增) |
gds_fill_multi_missing_fields 控制GDS外表容错性参数fill_missing_fields设置为true/on时的行为。 |
开发指南 > GUC参数> 其他选项 >behavior_compat_options |
SQL语法
变更类型 |
序号 |
名称 |
变更描述 |
---|---|---|---|
新增 |
1 |
create foreign table (SQL on Hadoop or OBS) |
OPTION选项format参数新增json。 |
2 |
create foreign table (SQL on Hadoop or OBS) |
OPTION选项新增force_mapping。 |
|
3 |
列类型kvtype |
建表和alter column语法在列类型后面指定kvtype类型(tstag, tsfield, tstime),用于指定时序表的列类型。 |
|
4 |
表级参数sub_partition_count |
用于设置时序表二级分区的个数。 |
|
5 |
表级参数ttl |
用于指定自增分区的过期时间。 |
|
6 |
表级参数period |
用于指定add分区任务和drop分区任务的触发时间间隔、单个分区时间范围。 |
|
7 |
支持List分区 |
新增list分区操作语法,包括创建、ALTER各项操作。其中创建语法时单独的语法分支;AT语法除split外,其它和range分区类似。 |
|
8 |
alter table add index/drop index |
新增alter table语法分支新增和删除索引。 |
|
9 |
create table ... like |
新增create table ... like不带括号的语法形式 。 |
|
10 |
alter table ... add/modify column |
新增alter table对column的添加和修改语句,现支持设置comment和default。 |
|
11 |
with cte as后新增[NOT] MATERIALIZED语法 |
with cte as后新增[NOT] MATERIALIZED语法。 |
|
12 |
alter index ... comment |
增加alter index语法支持comment子句。 |
|
13 |
alter table ... add index comment |
增加alter table add index语法支持comment子句。 |
|
14 |
create index index_name on table_name comment |
增加create index语法适配comment子句。 |
|
15 |
copy to |
copy to语句OPTION选项新增server、bom、fileprefix、maxrow。 |
|
16 |
create foreign table(obs导入导出) |
create foreign table(obs导入导出)语句OPTION选项新增bom。 |
|
17 |
操作符= |
如果两个roaringbitmap相等则返回true,否则返回false。 |
|
18 |
操作符<> |
如果两个roaringbitmap不相等则返回true,否则返回false。 |
|
19 |
操作符& |
计算两个roaringbitmap求交集以后的结果。 |
|
20 |
操作符| |
计算两个roaringbitmap求并集以后的结果。 |
|
21 |
操作符| |
计算一个roaringbitmap中增加一个id以后的结果。 |
|
22 |
操作符# |
计算两个roaringbitmap做异或运算后的结果。 |
|
23 |
操作符- |
计算在第一个roaringbitmap,但是不在第二个roaringbitmap中的集合。 |
|
24 |
操作符- |
在roaringbitmap中去掉指定的id后的结果。 |
|
25 |
操作符@> |
前面的roaringbitmap如果包含后面的元素则返回true,否则返回false。 |
|
26 |
操作符<@ |
前面的roaringbitmap如果被后面的元素包含则返回true,否则返回false。 |
|
27 |
操作符&& |
两个roaringbitmap如果有交集则返回true,否则返回false。 |
|
28 |
ALTER TABLE DROP KEY |
新增删除索引语法,与alter table drop index用法相同。 |
|
29 |
ALTER TABLE CHANGE |
兼容MySQL中的change语法,可以同时修改列名以及列属性。 |
|
30 |
ALTER TABLE ... FIRST/AFTER colname |
语法层实现支持FIRST/AFTER语法,但不实现实际语义,适用alter table add/modify/change column场景,受参数skip_first_after_mysql控制。 |
|
31 |
AGG HINT |
新增对于agg的hint,可用于性能调优。 |
|
32 |
ALTER TABLE ... ALTER COLUMN cstore_cu_sample_ratio |
为了少解压CU,样本都集中在随机选择的CU里,样本比较集中,不容易获取数据特征。 加这个字段属性是为了在不增大采样率的情况下,多筛选一些CU,易于获取数据特征。 |
|
修改 |
33 |
表级参数deltarow_threshold |
表级参数deltarow_threshold的默认值设置为10000,指定列存表导入时小于多少行的数据进入delta表,只在表级参数enable_delta开启时生效。 |
34 |
btree索引支持类型扩展 |
该开源的引入,将btree索引支持的类型进一步扩展,在满足对应表支持类型的基础上,对行存表、列存表和时序表等都是适用的。btree_gin提供了一个为数据类型int2、int4、int8、float4、float8、timestamp with time zone、timestamp without time zone、time with time zone、time without time zone、date、interval、oid、money、"char"、varchar、text、bytea、bit、varbit、macaddr、macaddr8、inet、cidr、uuid、name、bool、bpchar和所有enum类型。 |
|
35 |
grant/revoke/alter default privileges语法 |
增加Alter/Drop/Vacuum权限。 |
|
36 |
ALTER TABLE ... DROP PARTITION |
drop partition语法可支持删除多个分区。 |
|
37 |
CREATE/ALTER TABLE中字段DEFAULT子句 |
create/alter table中的DEFAULT子句,不再支持后缀操作符(当前唯一的后缀操作符是阶乘!),如:create table t (a int default 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。 |
系统表
变更类型 |
序号 |
名称 |
变更描述 |
---|---|---|---|
新增 |
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,用于支持大小写不敏感行为。 |
系统函数
变更类型 |
序号 |
名称 |
变更描述 |
---|---|---|---|
新增 |
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 |
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下存在同名对象的场景下会导致结果集膨胀。 |
行为变更
变更类型 |
序号 |
名称 |
变更描述 |
---|---|---|---|
修改 |
1 |
create index目标表为时序表时 |
时序表创建的任何索引都会转换为tag表上的双索引,该双索引的索引列为指定的建索引的列。 |
2 |
负载管理新增二次管控 |
负载管理引入二次管控,提供更精细化的管控,FUNCTION、函数和多语句中包含复杂查询的可能触发多次管控,设置enable_transaction_parctl=off可以关闭二次管控,但同时会关闭事务块语句和多语句管控。 |
|
3 |
负载管理autoanalyze纳管 |
查询触发autoanalyze管控逻辑由不管控修改为管控,设置enable_transaction_parctl=off可以关闭autoanalyze管控。 |
|
4 |
用户监控视图pg_total_user_resource_info |
|
|
5 |
审计日志 |
|
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 |
|
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,新装、升级均会修改。参数表示客户端和服务端密码哈希迭代次数。 |