2022年4月1日,openGauss 3.0.0 版本正式发布!该版本是 openGauss 社区继2.0.0之后发布的又一个Release版本,版本维护生命周期为3.5年。3.0.0版本在高性能、高可用、高安全、高智能、工具链等方面都有持续创新和突破。本版本除了包含企业版以外,还同时发布了 openGauss 社区首个轻量版(Lite版)。
openGauss 是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行。openGauss 内核源自 PostgreSQL,深度融合华为在数据库领域多年的经验,结合企业级场景需求,持续构建竞争力特性。同时 openGauss 也是一个开源的数据库平台,鼓励社区贡献、合作。
官网地址 https://opengauss.org/zh/(复制链接至浏览器中打开)
云和恩墨紧密跟踪 openGauss 的源码变化,第一时间发布新版本的容器镜像。运行以下命令即刻体验最新版本 openGauss 的能力:
docker run --name opengauss --privileged=true -d -e GS_PASSWORD=openGauss@123 enmotech/opengauss:latest
docker hub 地址
https://hub.docker.com/r/enmotech/opengauss (复制链接至浏览器中打开或点击文末“阅读原文”直达)
感兴趣的朋友快去体验一下吧!
PART ONE
云和恩墨 openGuass 镜像的特点
云和恩墨发布的 openGauss 3.0.0 镜像在云端环境、虚拟机环境和容器环境下均使用相同的初始化最佳实践配置,这样当您在应对各种不同需求时会有几乎相同的体验。
云和恩墨会持续发布基于不同 CPU 架构(x86 或者 ARM)的不同操作系统的各种镜像。目前已经支持 x86-64 和 ARM64 两种架构,会根据您获取镜像时运行的机器架构自动判断。
从3.0.0版本开始(包括3.0.0版本)
容器使用Lite版安装包,基础镜像的大小进一步降低到100MB以下;
默认启动后的空载内存占用小于200MB;
在容器内部的操作系统级别添加vi,ps等基础命令。
从2.0.0版本开始(包括2.0.0版本)
x86-64 架构的 openGuass 运行在 Ubuntu 18.04 操作系统中;
ARM64 架构的 openGauss 运行在 Debian 10 操作系统中。
在1.1.0版本之前(包括1.1.0版本)
x86-64 架构的 openGuass 运行在 CentOS 7.6 操作系统中;
ARM64 架构的 openGauss 运行在 openEuler 20.03 LTS 操作系统中。
PART TWO
容器的定义与优势
容器提供了一种逻辑打包机制,以这种机制打包的应用可以脱离其实际运行的环境。利用这种脱离,不管目标环境是私有数据中心、公有云,还是开发者的个人笔记本电脑,您都可以轻松、一致地部署基于容器的应用。容器化使开发者和 IT 运营团队的关注点泾渭分明——开发者专注于应用逻辑和依赖项,而 IT 运营团队可以专注于部署和管理,不必为具体的软件版本和应用特有的配置等应用细节分心。
之前使用虚拟化环境的用户经常会将容器与虚拟机 (VM) 进行比较。您可能已经熟悉虚拟机的定义:在主机操作系统上运行且以虚拟化途径访问底层硬件的客机操作系统(如 Linux 或 Windows)。与虚拟机相似,容器也让您可以将应用与库和其他依赖项打包,提供独立环境来运行您的软件服务。但是,我们从下方可以看到,两者的相似性仅此而已,因为容器为开发者和 IT 运营团队提供了更加轻型、具有众多优势的运营单元。
与虚拟机的硬件栈虚拟化不同,容器在操作系统级别进行虚拟化,且可以直接在操作系统内核上运行多个容器。也就是说,容器更轻巧:它们共享操作系统内核,启动速度更快,且与启动整个操作系统相比其占用的内存微乎其微。
可用的容器格式有许多。Docker 是一种广受欢迎的开源容器格式。
一致的环境
容器让开发者可以创建与其他应用相隔离的可预测环境。容器还可以包含应用所需的软件依赖项,比如具体的编程语言运行时版本和其他软件库。从开发者的角度看,无论应用最终部署在什么地方,都可以保证这些条件一致。这一切将转化为生产力的提升:开发者和 IT 运营团队可以减少调试和诊断环境差异所需的时间,将更多的时间用于为用户提供新的功能。而且这也意味着 bug 更少,因为开发者现可在开发和测试环境中做出在生产环境中也适用的假设。
在任何地方运行
容器几乎能在任何地方运行,极大减轻了开发和部署工作量:在 Linux、Windows 和 Mac 操作系统中;在虚拟机或裸机上;在开发者的机器或本地数据中心的机器上;当然还有在公有云上。而 Docker 容器映像格式广受欢迎,则进一步增强了可移植性。无论您希望在什么地方运行软件,都可以使用容器。
隔离
容器会在操作系统级别虚拟化 CPU、内存、存储和网络资源,为开发者提供在逻辑上与其他应用相隔离的沙盒化操作系统接口。
容器的优势 | 虚拟机的优势 | |
---|---|---|
一致的运行时环境 | ✔️ | ✔️ |
应用沙盒化 | ✔️ | ✔️ |
占用的存储空间少 | ✔️ | |
开销低 | ✔️ |
从代码到应用
借助容器,您可以将应用及其依赖项封装为一个可进行版本控制的简洁清单文件,不但能让您团队中的开发者轻松复制您的应用,还可在集群中的机器之间复制。
软件库将零碎的代码打包在一起,让开发者脱离用户身份验证和会话管理等逻辑;与此类似,容器让您可以将应用整个打包,脱离操作系统、机器,甚至是代码本身。结合基于服务的架构,要求开发者考虑的整体单元就会小许多,因而敏捷性和生产力更高。所有这些都能简化应用的开发、测试、部署和整体管理。
PART THREE
关于 openGauss 3.0.0 轻量版
openGauss 3.0.0 发布包含两个数据库服务端安装包:企业版和轻量版。轻量版定位是在软硬件资源受限场景下仍可应用openGauss,其保留了企业版大部分的特性,独有的特点如下:
一、占用资源少
本次发布轻量化版本安装包实际大小为20MB,空载内存小于250MB。
二、易安装
相比于企业版,其安装流程更简单快捷。
三、轻量版通过参数默认关闭的特性
Ustore特性(inplace-update引擎)、Asp特性(active session profile)、增量检查点(incremental checkpoint)、双写(double write)、列存、段页式存储、Full /Slow SQL特性、workload特性、sql响应时间信息计算特性、数据库监控快照功能。
四、轻量版不支持的特性
ORC文件访问、Kerberos安全校验、JAVA UDF、Codegen、MOT内存表特性、SMP并行查询特性、AI、全密态数据库、CM、OM。
五、二进制工具精简
保留了用户常用的gsql、gs_ctl、gs_guc、gs_dump、gs_restore、gs_probackup、gs_initdb等工具,还提供了安装部署、升级的工具liteom。
PART FOUR
openGauss 3.0.0 新特性
1. 鲲鹏单机性能持续保持领先
单机鲲鹏64核2P TPCC满足150万tpmC之后,3.0.0版本持续性能优化,支持行存转向量化、外键锁优化等技术,同时单机鲲鹏32核2P TPCC达到100万tpmC。
2. In-place Update存储引擎
openGauss 支持 In-place Update 存储引擎(原地更新),实现基于 NUMA-Ware 架构的高可扩展UNDO子系统、基于多版本的索引及闪回等关键技术,实现稳定场景下高性能。
3. 并行逻辑解码
在使用JDBC或pg_recvlogical解码时,通过设置parallel-decode-num参数来开启并行解码特性,数据库内核通过一个读取线程、多个解码线程以及一个发送线程之间的流水线协同运行进行逻辑解码操作,解码速度显著提升。
1. CM(Cluster Manager)
实现企业级集群管理能力,支持自定义资源监控,提供了数据库主备的状态监控、网络通信故障监控、文件系统故障监控、故障自动主备切换等能力。
2. Paxos分布式一致性协议
实现基于Paxos分布式一致性协议的日志复制及选主框架,支持在线添加、删除节点,在线转让Leader能力,通过自仲裁、多数派选主、优先级选主能力摆脱第三方仲裁组件,极大缩短RTO时间,且可预防任何故障下的脑裂双主。
3. Global SysCache
将系统缓存与会话解耦,绑定到线程上,结合线程池特性达到降低内存占用的目的,同时结合全局缓存,提升缓存命中率,保持性能稳定。
1. 原生多方共识,账本数据库
融合区块链中的密码学校验技术,对用户指定的防篡改表中数据进行修改时,突破传统链式生成校验信息的串行化限制,高效生成、记录篡改校验信息,且内置高性能篡改校验接口供用户调用。
2. 全密态数据库能力持续增强
密态等值查询能力扩展支持JDBC开发接口,并支持存储过程和函数中的密态等值查询能力,使得存储过程和函数中的数据也可以以密文形态参与运算。
3. 支持国密算法体系
口令登录认证支持使用SM3国密算法,加解密函数API接口支持使用SM4国密算法,密态等值查询支持使用SM4加密算法存储数据并运算。
4. 支持ANY权限管理
新增支持数据库级别的ANY权限管理,即对数据库内的某一类对象的所有实体具有特定的操作权限,新增语法GRANT/REVOKE ANY权限TO/FROM user 来执行ANY权限授予和回收,同时新增系统表gs_db_privilege来记录用户的数据库级ANY权限。
1. AI4DB 自治运维平台 DBMind
实现 DBMind 系统组件化,支持通过组件命令执行方式,实现AI自治功能的调用;
集成基于 openGauss exporter 的采集能力,实现监控、采集、诊断和优化端到端能力。慢SQL根因分析实现基于KNN算法和根因特征权重矩阵的慢SQL根因分析召回,覆盖20+慢SQL场景;
支持分区表索引推荐能力;
实现轻量化趋势预测能力,实现线性时序、非线性时间和周期时序多种场景下的预测能力。
2. DB4AI 库内AI引擎
提供原生SQL语法(Create Model、Predict By),实现简易AI训练和推理执行;
通过内置AI原生算子方式,与优化器、执行器完美融合,实现性能超越MADlib 10倍;
支持10种常用机器学习算法,包括线性回归、逻辑回归、SVM、KMeans、XGBoost、PCA等,实现普惠AI。
1. 支持使用中间件 ShardingSphere 构建分布式数据库
基于分布式中间件 ShardingSphere 使 openGauss 具备分布式数据库能力。使用16个鲲鹏920节点组网完美sharding性能>1000万tpmC。
2. 支持 Kubernetes 部署分布式数据库
支持一键式部署分布式数据库,通过patroni实现计划内switchover和故障场景自动failover, 通过haproxy实现 openGauss 主备节点读写负载均衡,通过 ShardingSphere 实现分布式能力,所有功能打包至镜像并提供一键式部署脚本。
1. DataStudio 工具代码正式开源
DataStudio 是面向开发人员和数据库管理员的图形化通用集成开发环境。它简化了 openGauss 数据库的开发和管理,支持如下功能:
(1)管理和创建数据库、模式、表、索引等各类数据库对象。
(2)执行SQL语句或SQL脚本,高效进行SQL开发。
(3)创建和执行PL/SQL语句,支持存储过程调试。
(4)表数据增、删、改、查操作,导入和导出表数据、DDL、连接信息。
(5)支持SQL执行历史记录查询,显示执行计划、ER图。
2. MySQL 到 openGauss 的迁移工具 chameleon
chameleon 工具是一个基于 Python 语言的 MySQL 到 openGauss 的实时复制工具。该工具提供了初始全量数据的复制以及增量数据的实时复制能力,可实现数据从 MySQL 迁移至 openGauss。
1. 发布订阅
企业版支持发布订阅,此特性基于逻辑复制实现,其中有一个或者更多订阅者订阅一个发布者节点上的一个或者更多发布。订阅者从它们所订阅的发布节点拉取数据。实现跨数据库集群的数据实时同步。
2. 行存表压缩
支持行存表数据压缩,提供通用压缩算法,通过对表和索引数据页的透明页压缩和维护页面存储位置的方式,做到高压缩、高性能。磁盘持久化用2个文件存储,分别是压缩地址文件(扩展名.pca)和压缩数据文件(扩展名.pcd)。
3. Libpq支持IPv6和多IP
Libpq驱动支持IPv6能力;
Libpq支持多IP能力,外部使用Libpq库时,可配置主备多个IP,在连接字符串中, host、hostaddr和port选项接受以‘,’分割的字符串。
END
数据驱动,成就未来,云和恩墨,不负所托!
云和恩墨创立于2011年,以“数据驱动,成就未来”为使命,是智能的数据技术提供商。我们致力于将数据技术带给每个行业、每个组织,构建数据驱动的智能未来。
云和恩墨在数据承载(分布式存储、数据持续保护)、管理(数据库软件、数据库云管平台、数据技术服务)、加工(应用开发质量管控、数据模型管控、数字化转型咨询)和应用(数据服务化管理平台、数据智能、隐私计算数据联邦平台)等领域为各个组织提供可信赖的产品、服务和解决方案,围绕用户需求,持续为客户创造价值,激发数据潜能,为成就未来敏捷高效的数字世界而不懈努力。
目前,云和恩墨的700多名员工分布在国内外的34个地区,已累计直接服务8大关键行业(金融、通信、能源、政务、制造、交通、医疗、商贸)的1,000多个组织,50,000多套业务系统,300,000多名行业从业者。