文章分类 - openGauss源码解析
openGauss数据库是华为公司在深度融合技术应用于数据库领域多年经验的基础上,结合企业级场景要求,推出的新一代企业级开源数据库。本文将从各方面对该openGauss数据库源码进行详细介绍。
摘要:openGauss源码解析:AI技术(34)8.7.4 基于MADlib框架的扩展前文展示了MADlib各个模块的功能和作用,从结构上看,用户可以针对自己的算法进行扩展。前文中提到的XGBoost、GBDT和Prophet三个算法是我们在原来基础上扩展的算法。本小节将以自研的GBDT模块为例,介绍基
阅读全文
摘要:openGauss源码解析:AI技术(35)8.7.5 MADlib在openGauss上的使用示例这里以通过支持向量机算法进行房价分类为例,演示具体的使用方法。(1) 数据集准备,代码如下:DROP TABLE IF EXISTS houses;CREATE TABLE houses (id IN
阅读全文
摘要:openGauss源码解析:AI技术(36)8.7.6 演进路线openGauss当前通过兼容开源的Apache MADlib机器学习库来具备机器学习能力。通过对原有MADlib框架的适配,openGauss实现了多种自定义的工程化算法扩展。除兼容业界标杆PostgreSQL系的Apache MAD
阅读全文
摘要:openGauss源码解析:安全管理源码解析(1)第9章 安全管理源码解析openGauss作为新一代自治安全数据库,提供了丰富的数据库基础安全能力,并逐步完善各类高阶安全能力。这些安全能力涵盖了访问登录认证、用户权限管理、审计与追溯及数据安全隐私保护等。本章节将围绕openGauss安全机制进行源
阅读全文
摘要:openGauss源码解析:安全管理源码解析(2)9.2 安全认证安全认证是数据库对外提供的第一道防线,数据库访问者只有完成身份识别、通过认证校验机制,才可以建立访问通道从事数据库管理活动。在整个安全认证过程中,涉及用户身份管理识别、用户口令安全存储以及完善的认证机制3大模块,而对于系统内部的进程间
阅读全文
摘要:openGauss源码解析:安全管理源码解析(3)9.2.2 口令存储口令是安全认证过程中的重要凭证。openGauss数据库在执行创建用户或修改用户口令操作时,会将口令通过单向哈希方式加密后存储在pg_authid系统表中。口令加密的方式与参数“password_encryption_type”的
阅读全文
摘要:openGauss源码解析:安全管理源码解析(4)9.2.3 认证机制整个认证过程中身份认证完成后需要完成最后的认证识别。通过用户名和密码来验证数据库用户的身份,判断其是否为合法用户。openGauss使用基于RFC5802协议的口令认证方案,该方案是一套包含服务器和客户端双向认证的用户认证机制。首
阅读全文
摘要:openGauss源码解析:安全管理源码解析(5)9.2.4 Kerberos安全认证Kerberos是一种基于对称密钥技术的身份认证协议。开源组件Kerberos可以解决集群内节点或者进程之间的认证问题,即当开启kerberos之后,恶意用户无法仿冒集群内节点或进程来登录数据库系统,只有内部组件才
阅读全文
摘要:openGauss源码解析:安全管理源码解析(6)9.3 角色管理角色是拥有数据库对象和权限的实体,在不同的环境中角色可以认为是一个用户、一个组或者兼顾两者。角色管理包含了角色的创建、修改、删除、权限授予和回收操作。9.3.1 角色创建如果在openGauss上需要创建一个角色,可以使用SQL命令C
阅读全文
摘要:openGauss源码解析:AI技术(32)8.7 DeepSQL前面提到的功能均为AI4DB领域,AI与数据库结合还有另外一个大方向,即DB4AI。在本章中,我们将介绍openGauss的DB4AI能力,探索通过数据库来高效驱动AI任务的新途径。8.7.1 使用场景数据库DB4AI功能的实现,即在
阅读全文
摘要:openGauss源码解析:AI技术(23)2. 关键代码段解析(1) 后台线程的实现。前面已经介绍过了,本功能可以分为三个角色:Agent、Monitor以及Detector,这三个不同的角色都是常驻后台的进程,各自执行着不同的任务。Daemon类就是负责运行不同业务流程的容器类,下面介绍该类的实
阅读全文
摘要:openGauss源码解析:AI技术(24)8.5.4 使用示例Anomaly-Detection工具有start、stop、forecast、show_metrics、deploy五种运行模式,各模式说明如表8-12所示。模式名称说明start启动本地或者远程服务stop停止本地或远程服务fore
阅读全文
摘要:openGauss源码解析:AI技术(25)8.5.5 演进路线Anomaly-Detection作为一款数据库指标监控和异常检测工具,目前已经具备了基本的数据收集、数据存储、异常检测、消息推送等基本功能,但是目前存在以下几个问题。(1) Agent模块收集数据太单一。目前Agent只能收集数据库的
阅读全文
摘要:openGauss源码解析:AI技术(26)8.6 AI查询时间预测在前面介绍过“慢SQL发现”特性,该特性的典型场景是新业务上线前的检查,输入源是提前采集到的SQL流水数据。慢SQL发现功能主要主要应用在多条SQL语句的批量检查上,要求之前执行过SQL语句,因此给出的结果主要是定性的,在某些场景下
阅读全文
摘要:openGauss源码解析:AI技术(27)8.6.3 实现原理图8-15 AI查询性能预测架构示意图总体而言,查询性能预测由数据库内核侧和AI Engine侧两个部分组成,如图8-15所示。(1) 数据库内核侧除提供数据库基本功能外还需要对历史数据进行收集和持久化管理,并通过curl向AI Eng
阅读全文
摘要:openGauss源码解析:AI技术(28)8.6.4 关键源码解析1. 项目结构AI Engine侧涉及的主要文件路径为openGauss-server/src/gausskernel/dbmind/tools/predictor,其文件结构如表8-13所示。表8-13 AI Engine文件结构
阅读全文
摘要:openGauss源码解析:AI技术(29)3. 预测流程内核侧的模型预测过程主要通过ModelPredictInternal函数实现。树状模型预测过程通过TreeModelPredict函数实现。内核侧的树状模型预测过程会占用一些与AI Engine进行通信的信令,该通信过程如下:char* Tr
阅读全文
摘要:openGauss源码解析:AI技术(30)5. 模型结构AI Engine的模型解析、训练和预测见8.6.4章节,下面的代码展示了模型的结构。class RnnModel(): def _build_model(self, epsilon): model = Sequential() model.
阅读全文
摘要:openGauss源码解析:AI技术(31)8.6.5 使用示例AI查询时间预测功能使用示例如下。① 定义性能预测模型,代码如下:INSERT INTO gs_opt_model VALUES(‘rlstm’, ‘model_name’, ‘host_ip’, ‘port’);② 通过GUC参数开启
阅读全文
摘要:openGauss源码解析:AI技术(13)8.3.2 现有技术首先,明确一下慢SQL发现的几个不同阶段,及其对应解决的问题。阶段1:对用户输入的一批业务SQL语句进行分析,推断SQL语句执行时间的快慢,进而可以将评估为慢SQL的语句识别出来。阶段2:对识别出的潜在慢SQL进行根因诊断,判断这些SQ
阅读全文