openGauss 5.0.0版本正式发布上线!

时间:2020-12-08 01:28:11

2323年3月31日,openGauss 5.0.0版本正式上线!

openGauss 5.0.0是openGauss发布的第三个LTS版本,版本生命周期为3年。openGauss 5.0.0版本与之前的版本功能特性保持兼容,在内核能力、工具链、兼容性方面全面增强。


openGauss 5.0.0版本正式发布上线!

一、内核能力增强 


企业级特性

SQL PATCH

当业务语句出现由于数据等因素变化引起执行计划跳变,且出现严重的性能劣化,用户可通过SQL PATCH机制在线实施修复,业务无需版本升级,无感知解决计划跳变等疑难问题。

SQL Patch功能通过在优化器阶段计划生成之前对查询解析树的HintState成员进行替换,达成在计划生成阶段产生zui佳执行计划的效果。在接口层面,用户可以使用SQL PATCH的创建、激活、禁用、删除、显示等接口,实现SQL PATCH全生命周期管理。

分区表能力持续增强

  • List分区键最大数由1扩展为16列;

  • Range分区键最大数由4扩展为16列;

  • 分区键底层重构LRHS为统一分区键内存结构

  • 兼容创建分区表COLUMNS、VALUES IN、PARTITIONS num、SUBPARTITIONS num、MAXVALUE、KEY语法

  • 优化跨分区的DDL和DML并发查询的算法,提升并发查询的性能

内置gstack工具

客户场景中gdb、gstack等工具都是无法使用的,当系统出现hang、慢等问题时,无法通过调用栈进行进一步的定位,针对以上痛点,通过复用openGauss操作系统信号,在信号处理函数中获取调用栈的方式实现内置gs_stack()函数,方便用户打印线程定位疑难问题。

事件触发器

客户场景中常常存在某个表结构发生变化时,希望在另一个或几个表上执行一些相关操作的需求。而通过事件触发器可以捕获当前数据库下的ddl操作以及ddl操作的目标对象,当目标对象发生执行指定操作的事件后,触发用户自定义的存储过程,处理业务期望的后续任务。目前已支持捕获的DDL事件包括:ddl_command_start、ddl_command_end、sql_drop、table_rewrite四类。


高性能

基础算子性能提升

扫描算子、聚集算子性能优化,实现TPC-H 100G数据量场景端到端性能提升37%.

  • Parser优化:优化Parser中关键字的搜索方法;

  • 表达式及算子优化:表达式框架展平及算子性能优化;

  • Inner Unique优化;

  • 谓词优化:通过谓词等价推理,获得新的下推谓词;

  • 扫描算子优化:对索引扫描、全表扫描算子做优化;

  • 聚集算子优化:对聚集算子做性能优化。


高可用

CM支持VIP管理

  • 支持业务配置VIP连接数据库,当主机故障,发生主备切换时,业务连接可自动重连到新的主机(毫秒级别);

  • 当数据库出现双主时,通过VIP连接数据库可确保连接唯—的主机,降低双主丢数据的风险。

CM支持两节点部署

  • 通过引入第三方网关IP,有效解决CM集群两节点部署模式下自仲裁问题,支持CMS和DN;

  • 同时支持动态配置CM集群故障切换策略和数据库集群脑裂故障恢复策略,从而能够尽可能确保集群数据的完整性和一致性。

CM磁盘只读检测能力增强

  • 只读状态从数据库获取,保证准确性;

  • 只读仲裁只仲裁当前超过阈值的实例,其他节点不受影响;

  • 主机只读保护后自动主备切换,选可用备机升主保证集群能正常提供工作。

CM易用性提升

  • 支持一键式关闭CM集群服务;

  • 支持和内核的安装部署解耦;

  • 支持按事件调用用户自定义脚本;

  • 支持CM组件单独升级,增强数据库集群可靠性;

  • CM根据配置信息,支持用户自定义组件的监控和管理。


高智能

DBMind自治运维系统持续增强

异常检测支持自配置

为适应用户实际场景和避免资源占用,DBMind支持系统、数据库上的异常检测自配置,用户可以在运行前或运行过程中实时增加、暂停或删除相应的异常检测项,其中异常检测项支持复合不同的异常检测算法,异常检测会根据不同的异常检测器的结果取交集,这样为适配用户具体使用场景提供了支持。


高安全

支持用户级别审计设置

  • 支持用户级别审计日志,对指定用户的所有SQL语句记录审计日志;

  • 支持按客户端信息配置审计开关,对指定的客户端APP及IP不记录审计日志;

  • 支持对风险较高的系统函数调用记录审计日志


资源池化

计算池化

计算池化支持多样化算力,通过shardingSphere构建openGauss分布式计算能力,实现32节点>2100W tpmC。

存储池化

存储池化支持多节点共享存储和池化能力,支持高端企业存储。基于分布式存储服务DSS组件,实现多节点共享一份数据,存储效率提升50%。

内存池化

基于分布式内存服务DMS组件实现多节点内存池化功能,通过高速互联网络交换页面实现多节点数据实时一致,并结合RoCE硬件RDMA加速,实现及致的低时延高吞吐通信。

集群管理

基于双重心跳检测、共享盘仲裁、IO Fencing等技术实现集群节点故障自动检测、恢复和隔离,为资源池化提供一个高可靠的运行环境。


二、DataKit工具链增强


DataKit定位为openGauss的数据全生命周期生产力工具,支持数据全生命管理,覆盖openGauss部署、迁移、开发、运维等阶段;

  • DataKit是openGauss的一个工具集,采用B/S软件架构,提供基础的服务器、数据库实例等软硬件资源管理能力;

  • 同时支持通过按需部署功能插件扩展能力,目前社区提供安装部署、数据迁移、数据开发、智能运维等功能插件;

  • DataKit也是一个工具开发平台,支持用户根据插件接口和规范实现自己的特有功能。功能插件支持动态加载到DataKit上运行,也支持从DataKit上动态卸载。插件支持调用平台和其他插件的开放接口获取相应数据和功能,以实现快速构建特色功能。


资源中心

资源管理作为DataKit的基座,为插件提供最基础的资源信息,让插件基于资源进行上层的业务开发和更为复杂的功能实现。当前支持的资源:

  • 数据库实例(包括openGauss和实例)

  • 物理机资源及可用区管理。


迁移能力

MySQL一站式迁移工具gs_rep_portal

  • gs_rep_portal支持对接debezium+kafka和gs_mysync,集成全量迁移、增量迁移、数据校验能力,实现全量迁移、增量迁移、反向迁移、数据校验完整方案打通;

  • 支持并行迁移任务流创建,支持用户设定自定义迁移计划,任务根据用户设定的执行计划顺序的自动执行迁移的每个步骤;

  • 支持迁移进度展示(总量、剩余量、剩余时间、复制时延等),支持迁移失败语句的展示。

MySQL全量迁移工具gs_mysync

  • 全量迁移工具gs_mysync(原chameleon),新增进度展示功能、可调试增强,全量迁移性能大于300M/s,即1T/h。

MySQL增量迁移和反向迁移工具gs_replicate

  • 增量迁移和反向迁移收编到Dezebium+kafka,对外统一到gs_replicate工具中,增量迁移性能大于3W tps。

基于默克尔树的数据校验工具gs_datacheck

  • 数据校验性能达到70MB/s;

  • 支持行级、列级、表级数据校验;

  • 支持对全量迁移导出的数据做直接读取校验。


业务建模

支持可视化算子操作和编辑,sql语句的预览和运行,数据可视化和生成报表,它作为DataKit的可插拔插件开发。主要功能:

  • 提供拖拽、连线的操作方式完成数据流算子的组装、配置。

  • 支持读取单步算子执行结果为用户生成自定义图表,并可以记录快照。

  • 可将一个或多个图表快照通过*排布的方式构建报表,并可通过外链分享给游客用户。


智能运维

支持慢sql诊断,日志检索,多维度运维指标监控。它作为DataKit的可插拔插件开发。主要功能:

  • 实例监控插件:支持监控 openGauss 数据库以及数据库所在服务器,本特性主要关注数据库和操作系统监控指标和 TOPSQL 捕获和分析。与其他需求及特性的交互分析:支持关联 SQL 诊断功能,进入 TOPSQL 详情页面,用户可触发创建诊断任务,对 TOPSQL 进行诊断分析。

  • 日志检索插件:为openGauss用户提供OS日志、数据库日志统一检索入口。

  • SQL诊断插件:为openGauss用户提供慢SQL监控、问题SQL诊断分析的功能。


安装部署

使用DataKit的安装功能可以让用户能够快速上手体验openGauss企业级数据库功能,包括在企业环境中安装、部署、卸载、各类openGauss集群,减少了用户的学习成本和运维成本,实现了对openGauss各种常见操作的可视化,屏蔽了不同openGauss版本中的配置差异。它作为DataKit的可插拔插件开发,主要功能:

  • 实现不同版本的openGauss安装、不同版本的升级;实现简单快捷的数据库日常运维。

  • 实现在页面上查看openGauss数据库基本状态、实时数据推送等。


数据开发

业务开发 (Web Data Studio) 是一个基于B通用集成开发环境,它以插件形式安装部署于DataKit,简化了openGauss 数据库的开发和管理工作。


调试能力

它允许数据库开发&DBA在DataKit上实现存储过程(函数)的开发与调试,它作为DataKit的可插拔插件开发,主要功能:

  • 创建和管理数据库的存储过程。

  • 在线可视化调试存储过程。


三、兼容能力增强

兼容能力增强兼容MySQL包括数据类型、操作符、系统函数、DDL、DML、DCL、PL/SQL等在内的绝大部分常用语法,实现应用近似零修改迁移

5.0.0版 本新 增对以下语法点的支持(只列举部分典型语法,详情请参见《数据迁移指南》中“MySQL兼容性说明”章节):

  • 数据类型:(1)支持XML类型;(2)支持binary数据类型及运算符;(3)支持tinyint

  • 系统函数:ADDDATE、ADDTIME、CONVERT_TZ、CURDATE、DATE_ADD、DATE_FORMAT、JSON_ARRAY、JSON_OBJECT、JSON_QUOTE、JSON_EXTRACT、DATABASE、ROW_COUNT、ANY_VALUE等;

  • DDL:(1)支持schema级、表级、列级设置和修改默认字符集和排序规则,支持对表的字符集进行转换;(2)支持在表第一列前面或者在指定列后面添加列;(3)支持隐藏索引,设置索引可见性;(4)支持字段大小写敏感;

  • DML:(1)支持对select into后面带OUTFILE、DUMPFILE和变量;(2)支持LOAD DATA语句导入表数据;(3)distinct支持order by带表达式;(4)select支持force关键字强制走索引;(5)视图支持插入、删除和更新;(6)支持default函数用于SQL语句;

  • DCL:(1)支持set transaction语法,设置会话和全局的隔离级别;(2)支持事件调度器,支持创建、修改、删除event操作;(3)支持show status、show warning和show errors等;(4)支持 'user'@'host' 形式指定用户;

  • PL/SQL:(1)支持WHILE循环带标签;(2)支持CASE WHEN condition和IF_THEN控制语法;(3)支持cursor相关语法;(4)存储过程支持REPEAT和RETURN; (5)支持create function前面不加as begin,末尾不加end language plpgsql;(6)支持declare handler、continue handler、exit handler;

  • 其他语法兼容:(1)支持用户自定义变量保存select语句的结果;(2)支持utf8_general_ci、utf8_bin、utf8_unicode_ci、binary等字符序;(3)支持utf8mb4字符集;(4)支持操作符行为和MySQL一致;(5)支持双引号表示字符串。


四、其他企业级特性增强


中间件

shardingSphere支持多种模式读写分离,支持跨库查询

  • 支持事务内语句的读写分离能力;

  • 支持聚集算子计算能力,实现数据库跨分片表关联查询功能。

openGauss+shardingSphere 32节点组网性能>2100W tpmC

  • shardingSphere后端采用异步JDBC降低连接消耗、openGauss采用资源池化架构提高单分片能力,使用32个鲲鹏920(128核)节点组网(1*shardingsphere-proxy ,11*shardingsphere-jdbc,20*openGauss)时,完美sharding性能>2100万tpmc。


应用开发接口

JDBC能力增强

  • 支持集群状态变化时触发快速负载均衡;

  • 支持开启心跳线程定时维护主节点心跳,在主节点故障后快速kill旧连接、对新连接连到新主上


五、文档结构优化

为了方便用户更好地使用openGauss,按用户角色、使用场景优化了文档结构,增加快速入门、应用开发指南、数据库管理指南、数据库运维指南、性能调优指南、AI特性指南、插件参考、SQL参考和数据库参考,用户可以根据使用场景快速获取openGauss信息。


开放治理,共建、共享、共治zui具创新力的数据库开源社区

作为一个开源社区,openGauss秉承共建、共享、共治的理念。通过开放、成熟的治理,与企业、伙伴、开发者,共同建设开源社区。截至目前,openGauss社区用户超过160万,230多家企业签署企业贡献者协议CLA加入到社区,来自企业和高校的4400名开发者积极参与openGauss社区贡献,联合伙伴累计完成500+个行业解决方案适配,覆盖*、金融、运营商等10余个行业。

感谢openGauss社区所有贡献者

“孤举者难起,众行者易趋”。我们衷心感谢来自社区550名参与openGauss 5.0.0版本开发的开发者们。

openGauss 5.0.0版本正式发布上线!

感谢参与和协助openGauss项目的所有成员,包括华为、清华大学、云和恩墨、海量数据、中国联通、中国移动、南大通用、粤港澳大湾区国家技术创新中心、软通动力、中软国际、北京超图软件股份有限公司、民生银行、神舟通用、易宝软件、北京思斐软件技术有限公司、超聚变数字技术有限公司、浩联云(广东)科技有限公司、西安智讯数据网络有限公司、西安电子科技大学、天津大学、电子科技大学计算机科学与工程学院、宁夏大学信息工程学院、华南理工大学软件学院、中山大学计算机学院、*民族大学信息工程学院、西安利他网络有限公司、深信服科技股份有限公司等组织单位(排名不分先后)。是你们的辛勤付出使得版本顺利发布,也为openGauss更好地发展提供可能。