数据库老炮逐浪AI和国产化:DBA永远无法被替代

徐戟(白鳝)、薛晓刚、张瑞远 2024-03-28 10:56:42
近几年,人工智能猛然发展、国产数据库迅速崛起,行业带来了前所未有的变革。作为DBA,如何在这波浪潮中找到自己的位置,乘风破浪、迎接未来呢?

 

为此,尚雷老师出品&主持,同时邀请徐戟(白鳝)、薛晓刚、张瑞远三位老师就“DBA如何在AI与国产数据库浪潮中乘风破浪?”这一话题展开了深入探讨。

 

分享概要

  • 话题一:智能运维趋势下,DBA如何携手AI开创新未来?

  • 话题二:Oracle霸主地位仍稳固,国产数据库同样崛起,DBA如何抉择未来之路?

  • 话题三:300+国产数据库,如何选定最佳技术栈与发展路线?

  • Q&A环节

 

以下为访谈实录&精选互动问题:

 

 一
智能运维趋势下,DBA如何携手AI开创新未来?
 

 

 
徐戟(白鳝)

AI的发展趋势是我们无法左右的,英伟达的老黄甚至认为通用人工智能(AGI)将会在5年内出现,虽有点乐观,但也不会太不靠谱。如果真的在5年左右产生AGI,那么在15-20年左右,AGI将会逐渐成熟,并深度影响整个世界,因此DBA要做好与AGI共存的准备。不过大家也不用过于焦虑,AI可以成为DBA前所未有的工具,且不会拿走DBA的工作。只不过那时候的DBA在技能和从事的工作内容上会有所不同,能够与AI更好融合的DBA具有更大的优势。如果我们想要拥抱这个趋势,现在开始,可以从以下几个方面去做些准备:

 

1)以更加开放的态度去接触AI,而不是出于恐惧或者其他原因故意远离它。现在AI在DBA领域可能还很弱智,但是它成长迅速。尽早认可它、接触它、使用它是更好的态度。

 

2)有开发经验的DBA,除了会写SQL外,最好再去学会Python编程,Python很简单,我这个50多岁的人没有看任何书籍,仅仅依靠以前C语言那点功底,遇到问题再问问同事,也可以写一些Python脚本、改一些Python代码了,所花的时间不到半个月。

 

3)可以尝试利用Python和一些算法去分析你手头有的数据,哪怕是ASH,AWR数据都可以。从生产环境中导出这些数据,在自己的电脑上尝试用一些简单的AI算法去做异常检测,去做模式分析和归类分析,你会发现一个全新的世界。当然这建议仅供于有兴趣的朋友。    

 

4)在日常工作中尝试使用各种免费的大模型来进行知识探索、问题分析和搜索。我经常使用newbing、星火、文心等大模型来学习一些新的国产数据库知识,效果比直接看文档要好得多。甚至我也使用大模型来帮我分析一个复杂的执行计划,其效率也比我一点点看要快得多。用好大模型工具,可以帮我们减轻很多工作负担。

 

5)有条件的朋友可以尝试线下部署一个大模型,CHATGLM6B3、Yi-34B-Chat、Qwen-7B、Baichuan2-13B等模型都可以在一块3090显卡上跑起来,有些模型通过量化缩容后,甚至可以在一块3060上跑起来。如果手头资金有限,买个二手显卡也是可以的。利用这些离线模型,可以尝试建立你自己的本地知识库,蚂蚁开源的DB-GPT开源项目是一个不错的框架。

 

 

薛晓刚

依托一些AI工具能帮我们缩短学习的周期,白鳝老师在这方面是我们的榜样。我个人观点觉得AI不会替代DBA,而是帮助DBA。

 

举个例子,医院的医疗设备通过血液检查,无需人工干预,可以直接得到各项指标的正常与否,就代表不要医生了?不是的,得到自动化的结果后,要结合过往病史,以及是不是对某些药物过敏才能对症下药。同样,要找到问题SQL,要分析是外购产品写的、还是自己开发团队写的?才知道是否能进行改写,还是要采用其他特殊手段解决问题。

 

再如B超或CT检查 ,如果没有专业的知识,再先进的技术都不能定位问题。前段时间我就遇到一个主库正常、从库延迟的问题:我通过一系列手段发现从库写入出现问题,最后发现不是SQL引起的,而是共享存储。

 

AI可能会得出结论,但是不能继续去找共享存储的问题所在,这就需要人工介入了。数据库是和操作系统以及硬件打交道的产品,AI是一方面,实际解决问题是另一方面。

 

现在数据库可观测性做得较好的,比如Oracle,简单的故障看一下AWR就知道大致问题,具体深入定位问题、解决问题,未必可以不要DBA。简单的、没有索引的问题,数据库甚至自己可以解决。没索引的全表扫描AI可以部分解决,N年前的Oracle也能实现。但是没有where条件的应该如何解决?

 

这是AI时代给我们创造的机会,要我们去干预。需要专家出手去解决的都是大事,把DBA从低价值中解脱出来,去做一些扩大自身影响力的工作。

 

这就像感冒发烧,不吃药一周能好,吃药7天也能好;大病还是要看医生,甚至要到大医院看医生。

 

于数据库而言,不少高消耗的SQL会造成负荷,智能运维可以快速定位到这个SQL,这个要比KV的监控强很多。那么这个SQL是怎么产生的?AI可能会告诉我们一些原因。但是不是真正的原因?就需要结合业务来看待问题,而AI无法侵入到每个业务中去

 

不过AI在有些方面确实出色,帮助我们发现一些知识的盲点,甚至帮我们快速写Java和Python,大大缩短了我们学习的成本和周期。

 

 
张瑞远

目前很多公司都在探索AI以及AI运维相关的领域,且做出了一些产品并投入了生产使用,并在日常的运维中对DBA起到了辅助作用。

 

自ChatGPT出来后,我们也陆续测试过ChatGPT 3.5、4等多个版本。如白鳝老师所描述的,当前AI没有那么完善,但不可否认的是,它对我们日常和工作来说已是个非常好的辅助工具,通过其版本不断迭代,它的准确度也是越来越高。

 

当前国产数据库百花齐放,但每个人的精力有限,很难接触到那么全面的知识,尤其是很多数据库还是闭源,想要去全面了解是很难的,我之前是从事Oracle工作的,后来转行做OB,深入了解其体系结构的过程中,花了不少时间。但如果我能有一个AI工具或平台,且能给我提供一些较精准的答案,还能借助其完成一些简单的安装部署和参数调整,就可以极大降低学习难度和成本。

 

我觉得AI降低了初级DBA的入门难度,假如有3分的能力,借助AI就可以达到6分的效果。

 

一些“疑难杂症”在知识或者训练度不够的情况下,AI可能会给出一些谬误的结论,对于更高层级的DBA可以根据自己的知识进行判断。

 

尽管AI不那么完美,但随着时间发展和产品迭代,它总会变得越来越好,未来AI一定会在日常生活和工作中占有一席之地。

 

 二
Oracle霸主地位仍稳固,国产数据库同样崛起,DBA如何抉择未来之路?
 

 

 
徐戟(白鳝)

国产数据库替代正在逐渐兴起,这是必然的趋势。但中美科技之争没有十年八年是看不到结果的,所以我们也要尽快调整心态,接受这个事实,并为此做出一些准备。

 

1)开源数据库对Oracle产生了冲击,国产数据库替代的出现对其的冲击更是加大。很多有钱行业的核心系统将会从Oracle上迁移下来,这些衣食父母身上发生的变化,必然会影响到以此谋生的DBA群体。短期来说,这个影响还不会特别大,就像当年X86替代小型机对硬件维保行业的影响一样,一些大型维保公司的硬件工程师直到最近这两年才感受到瑟瑟寒意。

 

2)过度焦虑是没必要的。因为无论用什么数据库,DBA依然是不可或缺的,只不过要为未来做好准备。即使是Oracle DBA,如果技术不错、学习能力很强,对Oracle也是充满喜爱,也可以更深入学习和研究,成为真正的高手。

 

在未来,Oracle高级DBA的职位依然会很吃香,因为Oracle的存量用户依然是相当多的;Oracle的初级DBA工作机会依然会存在,安装部署、日常维护和扩容等工作依然有大量的工作机会,只不过薪资较低;中级DBA受到的冲击可能会较大,因为关键行业Oracle DBA的需求会在未来三五年后开始减少,同时因为AI技术的发展,部分工作会由掌握了AI工具的初级DBA完成,因此中级DBA可以考虑往高级发展,或者在未来几年里完成转型。    

 

3)在最近数年中,大量的系统要做迁移,数据迁移工程师的工作机会增多,大家也可以考虑通过这个机会去完成转型,并通过这个机会去了解和熟悉国产数据库。

 

4)有机会去某个数据库原厂工作也是不错的,特别是年轻、没有太多负担的DBA,先到某个原厂去干上几年,哪怕不能长期干,也可以充实一下你的知识库。

 

 

薛晓刚

别人学Oracle,我去学习Oracle;MySQL热了,我去学MySQL;国内大数据炒作起来,去学了大数据,只是无用武之地;PG在中国有抬头的趋势后,我也去学了PG;随后还有达梦、TDSQL、TiDB、OB等……注意我并不是转移阵地,而是扩张阵地。

 

大家在工作中少不了NoSQL数据库。有KV的Redis、文档的MongoDB、列式的GP、CK、SR,还有Oracle的图数据库、时序数据库、全文索引等,我全赶上了,我还优化过SQLServer和DB2,还涉及过MQ、Kafka、PulSar等……经历了这么多,大家可能会问怎么选呢?

 

当初要知道怎么选,我就不会这样了。就像学习好的人,说他考前没有复习就能考高分,对你来说可能是并不适用的。同理,我的经验可能也不适用他人。我个人看到新东西就会去学习,哪怕就懂个皮毛,但是精力也有限,量力而行

 

大家心里彷徨该怎么办?我这里有几种方法供参考:

 

1)工作后,我从来不担心自己失业,这家不行换一家,哪里都是Oracle。但是现在比较割裂,国产数据库遍地开花,使我们换工作难度上升了,困境确确实实摆在面前。

 

我有一篇公众号文章 《相逢一笑泯恩仇》,MySQL和PG的恩怨大家都知道,但无非就是个选择之争。未来有时候可能要看运气,想要更保险,只能投入多份经历去押。

 

2)在各种数据库学习群里,可能有的水火不容,我自己的群希望大家放弃门派之争。单用商用成本高,单用开源搞不定,所以既不可能都商用,也不可能都开源,每种数据库都有它自身的场景,再加上如今的国产化。

 

有一个笑话:有个公司从Oracle切换到了MySQL,原来稳定的系统总是出现故障,后来请了个技术总监,带领技术团队进行了针对数据库的适配改造,经过一段时间后,系统稳定了,但数据库成本更高了,原因是总监太贵了!所以将来一个系统从Oracle切换到了国产,也要做这个适配,那么大家就是那个总监了……很贵的……

 

我个人还是佩服工匠精神。只做一种数据库,其实也饿不死,单一技能做到极致也可以碾压常人,只是路窄。

 

总之,当年我是因为主备技术栈让我不焦虑了。

 

 
张瑞远

作为一线DBA,我见证了数据库技术的迅猛发展和转型,从Oracle到国产数据库的转换不仅带来了挑战,也开辟了新机遇。数据库数量的激增要求我们拥有更高层次的技能,面对多样化的数据库产品,为DBA相关的职业人士提供了更广阔的舞台。

 

职场生态多样,有的人对当前状态感到满足,采取躺平态度;有的因不满薪资或工作环境而感到焦虑,渴望更好的发展;还有的因技术栈与公司需求不匹配而寻求转型。对于我而言,处于第三方维保公司的稳定环境,面对国产化需求,我选择积极适应新技术和产品。

 

面对变化,有的人可能在舒适区内等待政策驱动的项目;有的人则决定走出舒适区,寻找新的挑战和机遇。市场的不确定性像股票市场一样,未来可能只有几家主导厂商,因此个人选择变得尤为重要。

 

不少公司从Oracle转向国产化,面对这一市场的变化,要主动学习和适应新的数据库技术,以保持自己的竞争力,并为客户提供更高的价值。这种主动拥抱变化的态度,对于个人和企业来说都是至关重要的。

 

 三
300+国产数据库,如何选定最佳技术栈与发展路线?
 

 

 
徐戟(白鳝)

 

我90年代初开始使用数据库,用过DEC/RDB、VAX/RMS、foxpro、Interbase、Oracle、Sybase ASE、Informix……最终选择了Oracle作为未来的主攻方向,我的经历可以为现在的DBA提供一些参考:

 

1)当时我从这么多数据库中选择Oracle,并不是因为Oracle当时是最好的数据库产品,而是因为Oracle足够复杂,不太易用,周边的很多客户都在用Oracle,而且Oracle很贵,用户舍得在服务上花钱,所以我选择Oracle作为主攻方向。

 

在未来DBA选择某个国产数据库作为主要方向的时候,也可以用这个思路去考虑问题:首先看看周边的大客户都在用什么?哪个国产数据库的销售比较好?不要去选择那些本身也卖不出多少钱的数据库产品,作为你的主攻方向,用户都舍不得花钱买数据库产品,怎么会舍得花大价钱去花钱请DBA呢?    

 

2)目前国产数据库在大型系统中应用还是起步阶段,还没尘埃落定,因此还不急着做出选择。24年将会是一个十分关键的年份,如果不是十分迫切要做决定,“等可能是最好的选择。

 

3)如果你真的想学一款国产数据库,但是又找不到方向,我建议学习一下PG。目前很多国产数据库在血缘上都与PG有渊源,学习PG,今后对转向某种国产数据库可能会有很大的帮助。

 

 

薛晓刚

个人认为,国产数据库到最后有没有30家都不好说。企业生存是第一位的,当前的经济形式也会加速优胜劣汰的过程。除了几个做得好的头部企业,大部分国产数据库厂商,比诸位DBA还要焦虑呢!

 

 
张瑞远

首先,公司战略是决定数据库转型是否必要的重要因素之一。公司决策采用某个数据库,员工就会学习和掌握这种数据库。这种情况下,转型成为了一个必要的步骤,不仅为了项目的顺利进行,也为了个人职业的稳定。

 

其次,市场信任度也是一个关键的考虑因素。以汽车行业为例,消费者可能会犹豫是否购买来自新兴车企的汽车,担心该企业可能会突然倒闭,导致没有后续维修和保养保障;相反,选择一家已经建立了良好信誉的企业,不仅有价格和品质优势,还不太可能在短时间内消失,因而能够提供稳定的后续服务。在数据库领域也是如此,选择一个被广泛认可、并在行业内有良好口碑的数据库产品,可以减少未来的不确定性。

 

再者,选择适合自己行业的国产化数据库,也是一个策略。在不清楚如何选择时,可以参考同行业内头部企业的选择,观察他们采用了哪些国产化数据库,并且将这些数据库应用于核心业务。通常企业不会轻易更换核心业务所依赖的数据库,这样的选择可以作为一个信号,表明这些数据库可能会提供一个相对稳定的发展前景。

 

最后,如果在选择过程中仍然感到困惑,可以考虑学习那些开源且在行业中有深厚基础的数据库,如PG和MySQL。这些数据库不仅拥有强大的社区支持,而且因其开源性质为学习和转换提供了灵活性。

 

在数据库领域,掌握一种数据库后,转学其他数据库通常会更加容易。无论是集中式还是分布式,拥有深入的数据库知识,可以帮助您更快地适应新的数据库系统,从而加速个人的成长和学习速度。

 

 

Q&A

 

Q1:作为DBA,如何学习和使用AI,为自己的能力加持?今后的职场上更加需要怎样的复合型人才?

 

徐戟(白鳝)大约在2016年,我开始接触到AIOps概念,并深信AI能够解决传统技术无法应对的许多问题。面对专家培养的困难和一个需要在全国范围内优化的大型项目,我尝试通过AI技术找到解决方案。虽然最初对ALPS抱有极大热情,但随后的探索让我感到失望,意识到不能过度依赖AI,但仍然认为我们应该认真对待并利用AI技术。

 

我发现通用大模型,如GPT-4,对运维和数据库领域特别有用,尤其是结合了微软搜索的新版newBing,其在数据库知识方面的能力大大超出了传统模型。通过具体测试,新版newBing完美回答了我设置的数据库问题,显示出其卓越的基础能力。

 

我也尝试利用这些技术工具进行知识管理,个人实践了搭建私有AI工具来整理知识库,验证了其实用性和未来的商业潜力。

 

我建议学习编程和算法,通过这些技能进行数据分析和异常检测,提升在AI领域的竞争力。同时,参加如AIOps全球挑战赛等竞赛,不仅能促进学习,还能实践AI技术的应用。通过积极探索和应用AI技术,可以在实际工作中获得显著效益,并为个人技能发展和知识管理提供强大支持。

 

Q2:在DB-GPT的测试过程中,模型使用QLoRA微调后,codeLlama 13b的准确率有显著提高。但对DBA而言,80%的正确率,我们能不能接受,还是说AI终究只能用来参考?

 

徐戟(白鳝)在不久前,我便开始探索DB-GPT(一款由蚂蚁团队研发的开源工具),其支持多模型并能生成SQL语句,吸引了我的兴趣。我与其开发团队已有频繁交流,尽管这一工具刚问世不久,但可以支持多种模型以及某些代理,通过简单的语言即可生成SQL,尽管这种生成的准确性依赖于所采用的基础模型。

 

近年来,也有人询问关于可以本地部署的国产化模型。这些模型通常较小,从6B到7B不等,更大的模型需要更昂贵的硬件支持。未经过微调,这些模型在准确性上往往不尽人意,主要是因为它们并非专为DBA设计。

 

当然,市场上也存在一些专为运维领域设计的模型,尽管它们在生成SQL的准确率上尚有不足,但在特定场景下,例如生成Spark SQL或AI for BI应用的脚本方面已经开始显示其潜力。然而,直接在生产环境中生成高效SQL仍然是一个挑战,尽管这并不意味着未来也无法实现。

 

随着大模型性能的快速提升,如从2022年的GPT 3.5到目前国产模型的进步,我坚信未来将能够生成高质量的SQL。目前我们正在尝试AI for BI应用,并观察到对于基础数据有准确描述时,模型能够生成相对准确的表关联SQL。然而,面对客户数据库中数十万张表的复杂场景,自动处理和元数据整理仍是一个巨大挑战。

 

此外,我对未来几年技术的进步抱有乐观预期。如Oracle在其大会上提出的,通过大模型生成SQL的功能目前还不完善,可能仅是一个原型,但我相信,随着技术的发展和模型的完善,这一情况将会有所改变,未来这些工具将成为我们不可或缺的助手。

 

Q3:29岁、工作5-6年、江苏DBA。二线城市DBA职位较少,工作内容不复杂,管理的数据库数量有限、架构简单,且日常操作较保守。这种情况下,是否应该把国产数据库看作新起点,并考虑去上海等大城市重新开始?或是否应该深耕巩固Oracle等传统数据库,再去考虑新领域和新机会?

 

张瑞远

1)市场需求和趋势:调研国产数据库的市场需求和发展趋势。如果国产数据库的市场份额和需求正在增长,那么学习国产数据库技术可能会给您带来更多的职业机会。

 

2)个人兴趣和职业规划:思考您的个人兴趣和长远职业规划。如果您对国产数据库有浓厚的兴趣,或者认为它符合您的职业发展目标,那么转向国产数据库可能是一个好选择。

 

3)技术栈多样性:掌握多种数据库技术可以增加您的市场竞争力,使您能够适应不同的工作环境和需求。

 

4)地理和家庭因素:考虑搬迁到大城市是否对您和您的家庭来说是可行的,以及这是否符合您的生活规划。

 

5)学习资源和环境:评估您能够获取的学习资源和环境,是否有足够的条件支持您学习新的数据库技术。

 

6)风险和回报:考虑转向新技术所带来的风险和潜在回报。新技术可能需要更多的学习和适应时间,但同时也可能带来更高的职业发展潜力。

 

7)现有技能的深化:您已经有五到六年的Oracle等传统数据库经验,深化这些技能可能会让您在现有领域内更加专业和抢手。

 

尝试与行业内的其他专业人士交流,寻求他们的意见和建议。同时,您也可以考虑逐步过渡,即在保持现有工作的同时,通过兼职项目、在线课程或个人学习等方式来探索和学习国产数据库技术。

 

记住,职业发展是一个长期的过程,任何决定都应该综合考虑个人情况和市场环境。

 

--

 

薛晓刚地域问题是存在的,例如同类岗位北京的比上海能多出30%。如果想攻国产数据库,那就去那些已经有国产数据库部署的公司;如果不确定学习什么,去看看你想去的行业和公司,他们用什么,就去学习什么。

 

当然,背井离乡的我,多说一句和技术无关的,异地的医保社保、住房租房、子女教育等问题都要考虑。如果上有老和下有小的请注意了,工作和这些比起来根本不算什么。

 

Q4:考量国产化改造、运维难度、各种性能量化标准及数据库迁移难度等,同时还具备主流、有安全认证、完全自主产权,且在信创名单里的国产数据库有哪些?哪几个能成为头部选择?

 

徐戟(白鳝)首先,我想借此机会和大家探讨一下关于"信创"的一些细节。许多人可能对信创有一些误解,认为它是对所有系统的一个强制性要求。实际上,信创主要针对的是关键性基础设施系统,对于非关键基础设施的系统,并不是强制性要求使用信创数据库。

 

关于信创清单,已经发布了四期,而从第五期开始,评审标准转变为由国家机构检测中心进行的国测。国测的目的是让数据库产品能够通过这一测试,显示出它的技术和基础能力是符合国家标准的。通过国测的厂商,无疑是在规模和技术能力上都表现出色的。

 

国测的要求非常严格,包括闭卷考核,要求企业的员工在封闭环境中解决数据库相关的算法问题,并且通过编译。只有得分达到60分及以上,才能算是通过国测。这种高标准,确保了只有真正具备强大技术实力的数据库厂商才能通过。

 

值得一提的是,当我们考虑进行国产化数据库改造时,并不是说一定要选择通过了信创测试的数据库,因为只有关键基础设施系统,才是强制性要求使用国测通过的产品,这一点对于制定技术选型和采购决策的人员非常重要。

 

同时,评估数据库好坏没有一个固定的标准,各个企业可能根据自己的特点和需求建立不同的评价模型。此外,不同的存储引擎和算法有各自的优势,性能并不是唯一的衡量标准。

 

特别提一下Oracle数据库优化器的能力,Oracle拥有2000多个修复和几百个参数,这些特性使其在不同的环境和应用场景中表现出色。Oracle优化器虽然是30多年前的设计理念,但经过长期的市场磨练和技术改进,已经证明了其卓越的性能优化能力。这说明,一个数据库产品的市场地位和技术成熟度,是基于长期的发展和用户反馈积累起来的。

 

总之,选择数据库时,我们需要考虑多方面的因素,包括但不限于技术性能、成熟度、市场认可度以及特定应用场景的需求。通过国测的数据库产品至少在基础品质上有一定的保障,但最终的选择应该基于全面考虑和针对性测试。

 

特别鸣谢

 

 

徐戟(白鳝),南京基石数据技术有限责任公司CTO,资深Oracle数据库优化专家,曾供职于DEC、赛格集团、长天集团、联想集团等国内外知名企业。个人公众号『白鳝的洞穴』。

薛晓刚,Oracle ACE-Pro、Oracle讲师、MySQL讲师、PostgreSQL ACE Partner,个人公众号『四海内皆兄弟』。

张瑞远,新炬网络DBA,从Oracle DBA转型为某国产数据库一线DBA,拥有Oracle OCM、OceanBase OBCE。

尚雷,现就职于南京某上市互联网公司担任DBA,荣获PG ACE称号,拥有Oracle OCM、AWS、国产数据库等产品认证,个人公众号『尚雷的驿站』

最新评论
访客 2024年04月08日

如果字段的最大可能长度超过255字节,那么长度值可能…

访客 2024年03月04日

只能说作者太用心了,优秀

访客 2024年02月23日

感谢详解

访客 2024年02月20日

一般干个7-8年(即30岁左右),能做到年入40w-50w;有…

访客 2023年08月20日

230721

活动预告