GBase 8a V9与V8差异对比

0    20    1

Tags:

👉 本文共约3846个字,系统预计阅读时间或需15分钟。

集群架构

集群架构上,GBase 8a MPP Cluster V9.5版本支持兼容模式,可以不创建虚拟子集群,实现对V8.6版本的完全兼容;支持数据库集群从V8.6版本平滑升级到V9.5版本。

SQL语法及开发接口上,V9.5版本与V8.6版本在SQL语法无差异、开发接口完全兼容,应用程序无需修改或只需要进行少量的调整,如:

在虚拟集群架构下需要增加命名空间(对一个表的访问从database.table变为vc.database.table),或指定默认VC(虚拟子集群);兼容模式下不存该问题。

新增功能

1.虚拟集群

虚拟集群中包含多个VC,各VC在整个集群范围内独立运行,共享统一的入口。权限许可的情况下,各虚拟集群间可以相互访问。

  • 统一管理,在集群内部进行虚拟集群划分,在增强集群的扩展能力同时,提供统一的管理视图,集群可以达到千节点规模。
  • 业务隔离,虚拟集群对集群进行垂直资源隔离,在实际的业务场景中,可以实现不同业务的资源物理隔离。
  • 统一入口,用户选择Coordinator cluster中的任意一个Coordinator node作为集群入口。Coordinator node根据用户确定默认VC(coordinator节点存储了所有VC的database和表的元数据)。
  • 透明访问,虚拟集群提供统一的访问入口(能够实现对仓库和集市的统一访问入口),应用对多个物理集群的访问对应用是透明的,对应用来说就是一个统一的集群。

2.镜像集群

虚拟集群的镜像功能有以下特点:

  • 镜像表数据是主表数据的实时备份,对主表的修改将实时同步到镜像表。
  • 高可用:主表有了镜像关系后,对于SELECT模块相当于主表多出了分片备份。SELECT模块可以利用多出的备份提升SELECT高可用能力。
  • 灾备:支持同城异地部署集群。
  • 支持以库为单位创建、删除镜像关系。库下所有表都将创建镜像。库下所有函数、存储过程和视图都会同步在目标库下创建。

新增功能-- 数据安全——数据动态脱敏

动态数据脱敏并不会真正改动表中存储的实际数据,只是在查询的时候应用该特性控制查询返回的数据。

动态数据脱敏是否启用受当前用户权限影响,拥有unmask权限的用户不受脱敏规则影响可以访问实际数据,没有unmask权限的用户受脱敏规则影响只能访问到脱敏后的数据。

语法格式:

动态数据脱敏支持四种参数TYPE数据脱敏函数,如下:

1、 默认脱敏default

2、 随机脱敏random

3、 自定义脱敏partial

4、 哈希脱敏sha

5、 用户指定数据脱敏的起止位置

创建表时指定脱敏:

Alter添加、修改、删除mask属性

添加:Alter table t alter c masked with(function=’sha()’);

修改:Alter table t alter c masked with ( function = ’partial(1,’XXX’,1));

删除:Alter table t alter a drop masked;

脱敏属性权限,有unmask权限的用户可以忽略mask属性获取原始数据

新增功能-- 多列哈希分布

实际应用中有使用多列作为主键的情况,针对这种情况,表迁移到8a之后,可以使用这些主键的列作为HASH列。多列HASH分布可以更好的将数据均匀的分散到各个data节点。

新增功能--分区表

分区是数据库领域中处理大数据量的一种有效的技术手段,通过使用分区,可增强数据库的可用性、降低维护成本、均衡磁盘I/O,并有效改善查询性能。

分区表是根据一定规则,将数据库中的一张表分解成多个更小的容易管理的部分,从逻辑上看,只有一张表,但底层却是由多个物理分区组成。

分区表包括普通分区表和子分区表。表分区的总个数为64个。

目前常用的分区方法有RANGE分区、LIST分区、KEY分区、HASH分区,在分区的管理上目前支持创建分区、添加分区、删除分区。

RANGE分区表和LIST分区表支持子分区,子分区的分区类型可以为[LINEAR] HASH和[LINEAR] KEY。

功能优点:

1、 与单个磁盘或文件系统分区相比,可以存储更多的数据。

2、 对于那些已经失去保存意义的数据,通常可以通过删除与那些数据有关的分区,很容易地删除那些数据。相反地,在某些情况下,添加新数据的过程又可以通过为那些新数据专门增加一个新的分区,来很方便地实现。

3、 一些查询可以得到极大的优化,这主要是借助于满足一个给定WHERE语句的数据可以只保存在一个或多个分区内,这样在查找时就不用查找其他剩余的分区。因为分区可以在创建了分区表后进行修改,所以在第一次配置分区方案时还不曾这么做时,可以重新组织数据,来提高那些常用查询的效率。

4、 涉及到例如SUM()和COUNT()这样聚合函数的查询,可以很容易地进行并行处理。这种查询的一个简单例子如

通过“并行”,这意味着该查询可以在每个分区上同时进行,最终结果只需通过总计所有分区得到的结果。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

5、 通过跨多个磁盘来分散数据查询,来获得更大的查询吞吐量。

加载导出功能变更

(1)导出端口可配

远程导出功能默认使用导出客户端所在机器的16066-16165端口范围作为导出服务的临时端口。其端口范围可通过修改配置文件参数进行配置,参数如下表所示:

名称最小值最大值默认值
remote_export_min_port16553516066
remote_export_max_port16553516166

注:在早期的v8.6版本中,远程数据导出的端口范围为6066~6165,对于开启了防火墙的项目中,需要确认该端口。

(2) 加载支持指定文件压缩格式

参数名称:FILE_FORMAT

参数说明:用来指定被加载文件的格式

参数类型:枚举型

参数取值:UNDEFINED、UNCOMPRESSED、GZIP、SNAPPY、LZO

使用方法:指定为UNDEFINED,表示不指定格式,按文件后缀自动判断文件格式;指定为UNCOMPRESSED,表示按普通文本方式加载文 件;指定为GZIP,表示按GZIP格式加载文件;指定为SNAPPY,表示按SNAPPY格式加载文件;指定为LZO,表示按LZO格式加载文件。

BLOB/LONGBLOB支持功能变更

新版本严格区分blob和longblob类型,blob及text类型最大支持32KB;longblob和longtext最大支持64MB。

2018年2020年的部分历史版本中blob/text类型字段的大小超过最初定义的32KB,为最大64MB;在新版本中,超过32KB的数据可以读取,但再次插入超过32KB的数据内容时会报错,通过insert select/create table as select方式将数据插入到其他表中时,如存在超过32k的blob/text类型字段数据,报错。超过32KB,而不超过64MB的数据,可以存入到longblob字段中。

除字段的大小外,还有如下限制:

Longblob、blob字段不支持masked脱敏属性;

Longblob、blob不支持like条件查询;

Longblob、blob、text、longtext不支持max()、min()函数;

Longblob、blob、longtext不能作为group by、order by列;

Minus、union集合查询字段中,不支持longblob、blob、longtext字段。

Start with connect by功能完善

在v8.6.2build43R27之前的版本中,start with connect by功能存在不完善,当用户的分级查询中存在重复数据时,即存在Cycle环时不会报错退出,而是在环中反复执行。

新版本对该问题做了修复,当存在重复数据造成Cycle环时会提示报错Cycle exists in connect by clause,可通过增加nocycle关键字在遇到重复数据时终止执行并返回结果。

在中行的CDMO2项目中,客户利用了GBase 8a V 8.6.2版本start with connect by功能的缺陷,通过level条件控制分级查询的层级,如升级新版本则需要进行该部分业务的改造。

日期运算

两个日期数据直接相减,不足一天的部分,从返回0变成返回小数(V8.6.2build43开始)。

如需要判断日期差距,请使用datediff函数,而不是直接相减。

集群状态去掉lock

通过gcadmin查看集群的状态,CLUSTER STATE的状态取值去掉了lock状态。

即使集群的半数以上的管理节点处于OFFLINE/CLOSE情况下,集群状态显示依然会是ACTIVE,此时执行SQL会无法下发,卡住在获取集群状态直至超时报错返回。影响集群运维时的数据库可用性判断。

审计日志归档的event默认不可用

V9.5版本集群的审计日志归档的定时任务中,没有设置该定时任务所属VC(未设置VC_ID),从而无法执行。需要用户自行调整gbase.event表中的VC_ID。如下:

update gbase.event set vc_id='vc00001' where name='import_audit_log';

其中的vc00001要根据你的vc情况决定。如有多个VC,需要自行创建各自的归档event。

HDFS加载文件名包含等号问题

在v8.6.2build43r21~r23版本中,在使用RPC协议进行HDFS上的文件加载时,如文件名中包含有等号“=”则会造成无法加载入库,在之后的版本中已经修复该问题。

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部