openGauss概述

openGauss 是关系型数据库(relational database),采用客户端/服务器,单进程多线程架构;支持单机和一主多备部署方式,同时支持备机可读、双机高可用等特性。

openGauss 有如下基本功能。

(1) 支持标准 SQL。
openGauss 数据库支持标准的 SQL(structured query language,结构化查询语言)。SQL 标准是一个国际性的标准,会定期更新和演进。SQL 标准的定义分为核心特性以及可选特性,绝大部分的数据库都没有 100%支撑 SQL 标准。openGauss 数据库支持 SQL92/SQL99/SQL2003 等,同时支持 SQL2011 大部分核心特性以及部分可选特性。

(2) 支持标准开发接口。
openGauss 数据库提供业界标准的 ODBC(open database connectivity,开放式数据库连接)及 JDBC(java database connectivity,java 数据库连接)接口,保证用户能将业务快速迁移至 openGauss。目前支持标准的 ODBC3.5 及 JDBC4.0 接口,其中 ODBC 能够支持 CentOS、openEuler、SUSE、Win32、Win64 等平台,JDBC 无平台差异。

(3) 支持混合存储引擎。
openGauss 数据库支持行存储引擎、列存储引擎和内存存储引擎等。行存储分为 inplace update 和 append update 两种模式,前者通过单独的回滚段(undo log)来保留元组的前像以解决读写冲突,可以更自然地支持数据更新;后者将更新记录混杂在数据记录中,通过新旧版本的形式来支持数据更新,对于旧版本需要定期做 vacuum 操作来支持磁盘空间的回收。列存储支持数据快速分析,更适合 OLAP(online analytical processing,联机分析处理)业务。内存引擎支持实时数据处理,对有极致性能要求的业务提供支撑。

(4) 支持事务。
事务支持指的是系统提供事务的能力,openGauss 支持事务的原子性、一致性、隔离性和持久性。事务支持及数据一致性保证是绝大多数数据库的基本功能,只有支持了事务,才能满足事务化的应用需求。

A(atomicity): 原子性。整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。
C(consistency): 一致性。事务需要保证从一个执行性状态转移到另一个一致性状态,不能违反数据库的一致性约束。
I(isolation): 隔离性。隔离事务的执行状态,使它们好像是系统在给定时间内执行的唯一操作。例如有两个事务并发执行,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。
D(durability): 持久性。在事务提交以后,该事务对数据库所做的更改便持久地保存在数据库之中,不会因掉电、进程异常故障而丢失。
openGauss 数据库支持事务的隔离级别有读已提交和可重复读,默认隔离级别是读已提交,保证不会读到脏数据。

事务分为隐式事务和显式事务。显式事务的相关基础接口如下。

Start transaction:事务开启。
Commit:事务提交。
Rollback:事务回滚。
另有用户还可以通过 set transaction 命令设置事务的隔离级别、读写模式或可推迟模式。

(5) 软硬结合。
openGauss 数据库支持软硬件地结合,包括多核地并发访问控制、基于 SSD(solid-state drive,固态硬盘)地 I/O(input/output,输入/输出)优化、智能地 buffer pool(缓冲池)数据管理。

(6) 智能优化器。
openGauss 数据库提供了智能的代价模型、智能计划选择,可以显著提升数据库性能。openGauss 的执行器包含了向量化执行和 LLVM(low level virtual machine,底层虚拟机,一种构架编译器的框架系统)编译执行,可以显著提升数据库性能。

(7) 支持 AI。
传统数据库生态依赖于 DBA(database administrator,数据库管理员)进行数据地管理、维护、监控、优化。但是在大量的数据库实例中,DBA 难以支持海量实例,而 AI(artificial intelligence,人工智能)则可以自动优化数据库,openGauss 数据库的 AI 功能包括 AI 自调优、AI 索引推荐、AI 慢 SQL 诊断等。

(8) 支持安全
openGauss 数据库具有非常好的安全特性,包括透明加密(在磁盘的存储文件是加密的)、全密态(数据传输、存储、计算都是加密的)、防篡改(用户不可篡改)、敏感数据智能发现等。

(9) 支持函数和存储过程。
函数和存储过程是数据库中的一种重要对象,主要功能是将用户特定功能的 SQL 语句集进行封装并方便调用。存储过程是 SQL、PL(procedural language SQL,过程语言 SQL)/SQL 的组合。存储过程可以使执行商业规则的代码从应用程序中移动到数据库,从而实现代码存储一次但能够被多个程序使用。

允许客户模块化程序设计,对 SQL 语句集进行封装,调用方便。
存储过程会进行编译缓存,可以提升用户执行 SQL 语句集的速度。
系统管理员通过对执行某一存储过程的权限进行限制,能够实现对相应数据访问权限的限制,避免了非授权用户对数据的访问,保证了数据的安全。
为了处理 SQL 语句,存储过程分配一段内存区域来保存上下文。游标是指向上下文区域的句柄或指针。借助游标,存储过程可以控制上下文区域的变化。
支持 6 种异常信息级别方便客户对存储过程进行调试,支持设置断点和单步调试。存储过程调试是一种调试手段,可以在存储过程开发中,一步一步跟踪存储过程执行的流程,根据变量的值,找到错误的原因或者程序的 bug,提高问题定位效率。
openGauss 支持 SQL 标准中的函数及存储过程,增强了存储过程的易用性。

(10) 兼容 PostgreSQL 接口。
openGauss 数据库兼容 PSQL 客户端,兼容 PostgreSQL 标准接口。

(11) 支持 SQL hint。
openGauss 数据库支持 SQL hint(hint 是 SQL 语句的注释,可以指导优化器选择人为指定的执行计划),影响执行计划生成,提升 SQL 查询性能。Plan Hint 为用户提供了直接影响执行计划生成的手段,用户可以通过指定 join 顺序、join 方法、Scan 方法、结果行数等多个手段进行执行计划的调优,以提升查询性能。

(12)支持 Copy 接口容错机制。
openGauss 数据库中,用户可以使用封装好的函数创建 Copy 错误表,并能在使用 Copy From 语句时指定容错选项。指定容错选项后,openGauss 数据库在执行 Copy From 语句过程中不会因“部分解析”、“数据格式”、“字符集”等相关的报错中断事务,而是把这些报错信息记录至错误表中,从而使得 Copy From 的目标文件即使有少量数据错误也可以完成入库操作。用户随后可以在错误表中对相关的错误进行定位以及进一步排查。

  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值