openGauss DB4AI框架揭秘

1. openGauss AI框架的特点

DB4AI这个方向中,数据库通过集成AI能力,在用户进行AI计算时就可以避免数据搬运的问题。不同于其他的DB4AI框架,本次openGauss开源的原生框架是通过添加AI算子的方式完成数据库中的AI计算。

那么除了避免了数据搬运所带来的问题这个普遍优势,openGauss的AI框架还具有以下的优势和特点:

1)极低的学习门槛

当前最主流的计算框架:Tensorflow、pytorch、keras等大多依托于python语言作为构建的脚本语言,虽然python已经足够的简单易学但还是需要一定的学习成本。而当前的框架,设计提供了CREATE MODEL和PREDICT BY两种语法用于完成AI的训练和推断任务。该语法相比较python更加趋近于自然语言,符合人们的用语直觉。

CREATE MODEL point_kmeans USING kmeans FEATURES position FROM kmeans_2d WITH num_centroids=3;

SELECT id, PREDICT BY point_kmeans (FEATURES position) as pos FROM (select * from kmeans_2d_test limit 10)

2)极简的数据版本管理

本次DB4AI特性中还添加了snapshot功能。数据库通过快照的形式将数据集中的数据固定在某个时刻,同样也支持保存经过处理过滤的数据。功能分为全量保存和增量保存,其中因为增量保存每次仅存储数据变化,快照的空间占用大大的降低了。用户可以直接通过不同版本名称的快照直接获取相对应的数据。

3)极优的性能体验

相比于目前很多的AIinDB项目,openGauss的特性通过添加AI算子的方式将模型计算内置到数据库中。以算法训练为例,其中的数据的读取、模型的计算更新和最终的模型保存将在数据库的执行器中完成。这种方式将更加充分地利用和释放数据库的计算能力。深入内核的技术路线使得我们的特性在计算速度上优于其他更高层级调用的方法。

图1.与MADlib性能对比


2. 技术原理与优势

1)DB4AI-Snapshot

首先DB4AI.snapshot特性需要用户通过对操作数据存储的SQL查询指定哪些数据将填充新快照来创建快照。初始快照始终创建为操作数据的真实和可重用副本,使数据的特定状态不可变。因此,初始快照作为后续数据整理的起点,但它始终允许回溯到创建初始快照时原始数据的确切状态。

由于已创建的快照无法更改,因此在开始数据整理之前,必须“准备”快照。准备好的快照的数据可以进行协作修改,为模型训练做准备,特别是为数据管理做准备。此外,快照通过将每个操作作为元数据记录在DB4AI系统目录中,自动跟踪所有的更改,为数据提供完整的集成历史。

快照准备完成后,可以发布快照。发布的快照是不可变的,DB4AI系统强制只有发布的快照才能用于模型训练。保证训练任务

存档过时的快照以用于文档目的。在这种状态下,数据保持不变但不能用于训练新的模型。最后,清除快照,删除模式中的数据表以及视图、恢复存储空间。需要注意的是,快照管理为了实施严格的模型来源无法清除具有依赖的快照。

利用GUC参数,snapshot使用物化存储模式或者增量存储。在增量存储模式中,新快照对应的视图和数据表只保存相对父快照修改的内容,从而大大降低存储空间。

2)DB4AI-Query

原生AI框架深度内嵌于数据库内核中,通过查询优化和查询执行,构建包含AI算子的执行计划。计算完成后,框架的存储模块将负责保存模型相关信息。整个AI框架主题分成3部分,分别是:查询优化模块、计算执行模块和模型存储模块。

查询优化:

框架新增词法、语法规则CREATE MODEL、PREDICT BY作为AI计算入口。在查询优化中,模块负责简单的输入校验,包括:属性名合法性、算法当前是否支持、模型名称是否冲突等。校验完成后,该模块根据训练和推测任务生成对应的查询计划。

计算执行:

查询执行模块负责根据需求算法类型的不同添加相对应的AI算子到执行计划中,并执行运算其中包括数据读取和模型计算更新。各个算法之间高内聚低耦合,具有非常好的算法扩展性,对开发者之后添加算法友好。

模型存储:

当模型完成训练,执行器会把模型数据以tuple的形式传递给存储模块,最终将模型保存到系统表gs_model_warehouse中。

接下来我们以CREATE MODEL为例介绍用于训练模型的查询语句是如何实现的:

第一步 对Query进行词法分析、语法分析(Lex、Yacc)。通过识别模式类别和模式组合校对语句是否存在语法错误,生成分析树。

第二步 通过词法分析、语法分析(Lex、Yacc)后,数据库会对得到的每一个分析树进行语义分析和重写。在语义分析生成查询树的过程中,针对命令类型为createmodelStmt的情况,数据库首先会对算法类型进行检查判断算法属于监督学习还是非监督学习,根据这个判断结果继而进一步校验查询语句所输入的属性、超参、模型名称是否非法等。校验完成后,语义分析生成查询树,传递给数据库执行器。

第三步 在执行阶段根据算法类型的不同,执行器会添加不同的算法算子到执行计划中,将AI算子添加到扫描算子的上层。在算子执行计算的过程中,把扫描得到的数据输入到算法模型中进行计算和更新,最后根据超参设置的迭代条件结束算子执行。

第四步 计算完成后,执行器会将已训练完成的模型以元组的形式传递给存储引擎,接收到的元组转写模型结构体,经校验保存到系统表gs_model_warehouse中。用户可以通过查看系统表的方式查看模型的相关信息。

DB4AI作为openGauss原创的高级特性,凝结了openGauss在AI上的全新实践,通过DB4AI进一步拓展了openGauss数据库的应用领域。

利用openGauss提供的开箱即用的DB4AI功能,既有效解决数据仓库、数据湖场景中数据搬迁的问题,又提升了数据迁移过程中涉及的信息安全问题。未来,结合openGauss的多模、并行计算等领先优势,必将进一步地形成统一的数据管理平台,减少数据异构、碎片化存储带来的运维、使用困难。DB4AI特性的发布,是将openGauss进一步打造成一把锋利的瑞士军刀的关键一步!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,841评论 5 472
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,415评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,904评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,051评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,055评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,255评论 1 278
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,729评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,377评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,517评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,420评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,467评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,144评论 3 317
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,735评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,812评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,029评论 1 256
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,528评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,126评论 2 341

推荐阅读更多精彩内容