数据仓库服务 GAUSSDB(DWS)-8.1.3版本新增功能:新增功能

时间:2024-04-22 17:03:25

新增功能

表1 8.1.3新增功能

特性

描述

参考文档

支持自增分区和分区表管理功能

分区管理新增PERIOD(interval类型)和TTL(interval类型)

CREATE TABLE

ALTER TABLE

CREATE TABLE PARTITION

外表支持json格式

  1. HDFS外表READ ONLY外表支持JSON文件格式。
  2. OBS外表READ ONLY外表支持JSON文件格式。

CREATE FOREIGN TABLE (SQL on Hadoop or OBS)

跨集群互联互通特性

  1. 解除约束:
    1. 解除GDS的hang约束;
    2. 解除常用聚合函数约束:sum/count/min/max/avg等;
    3. 解除标量函数、分析函数约束;
    4. 增加互联互通外表与源表的列名、列类型强校验;
    5. 解除列名不可包含" WHERE "约束;
    6. 解除limit约束;
    7. 完善临时GDS外表策略;
  2. 本地集群是目标集群时,发起数据同步业务。

基于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分区。

MySQL兼容性增强

ALTER TABLE支持同时修改多个列。

ALTER TABLE支持COMMENT。

ALTER TABLE支持CHANGE、DROP KEY、DROP PARTITION和FIRST/AFTER。

ALTER INDEXCREATE INDEX

ALTER TABLECREATE 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

细粒度权限管理

  1. 新增表级权限Alter/Drop/Vacuum。
  2. 新增Schema级权限Alter/Drop。
  3. 新增预置角色role_signal_backend、role_read_all_stats。

解决INSERT OVERWRITE多CN死锁问题

多CN同时出发INSERT OVERWRITE不会造成死锁。

-

执行计划优化

  • SQL关联条件含or,执行计划走nestloop导致性能差,改写为union all优化。
  • SQL存在关联,过滤条件中含or条件,列存表的关联前对or的条件剪枝。
  • 集群DN数量较多时,大表与小表关联时,小表不走重分布操作而是走广播操作。

SQL调优关键参数调整

rewrite_rule新增projection_pushdown和or_conversion。

基于Relfile的空间统计与空间管控

  1. pg_table_size、pg_relation_size、table_skewness等系列视图的查询能够秒级返回结果。
  2. schema空间管控能够统计全量空间,解除当前约束。
  3. user/schema空间管控校准函数能够快速执行,schema空间校准函数自动执行。
  4. schema空间配额的SQL接口能够按照schema总空间分配而非DN级别。

性能定位定界增强专项

  1. 通信异常监测日志增强。
  2. pgxc_stat_activity视图增强。
  3. 支持Top SQL与Unique SQL关联。
  4. 新增pg_session_wlmstat分布式视图

资源负载管理优化重构

  1. 用户资源监控增强:用户资源监控逻辑整改。
  2. 资源监控增强:优化作业、用户资源监控,并增加队列级别资源监控。

分区表特性修改

  1. 边界值个数约束修改:分区表的所有分区数不超过32767个,所有分区的边界值个数不大于32767个。
  2. 修改创建默认分区策略:建分区表时,将创建两个默认分区,这两个默认分区的分区时间范围均为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等字段。

数据脱敏可算不可见兼容配置(8.1.3.310新增)

新增GUC参数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

support.huaweicloud.com/bulletin-dws/dws_12_0011.html