ChatGPT,可以说是今年最火的一个科技名词。随着这几个月的发展,我们看到有越来越多的ChatGPT与数据库结合的应用出现。这也不禁令人畅想,未来ChatGPT与数据库的结合,能擦出什么火花?DEV、DBA未来会失业吗?本文尝试阐述下未来两者的结合前景。
1. ChatGPT为什么火
让我们先看看ChatGPT,是如何来解释自己的?
作为一个人工智能的外行,一直有点好奇,为什么ChatGPT的出现,能产生如此颠覆性的影响。可以说在过去几十年里,人工在很多领域都有不错的表现。从最早的IBM Watson,到近几年的Google AlphaGo,都在具备领域有所突破,但似乎都没有办法解决通用性问题,只能满足特定场景。因而人们常说,AI没有那么聪明。其背后的原理也查了查资料是因为让AI掌握常识,并且能够融会贯通地运用这些常识、形成推理能力非常难,一直以来这都是巨大的难题。但这次以ChatGPT为代表的一众大语言模型,突然突破了这个门槛,变得非常“聪明”。当然背后的原因有很多,比如自监督学习、Fine-tuning策略等等,但有一个重要的底层变化——大语言模型的“涌现”现象,就是说一些业界从未想象到的能力,例如基础的社会知识、上下文学习、推理等等,在训练参数和数据量超过一定数值后,这些能力突然出现了,令AI一下子变得非常智能。伴随着这一技术突破,很多领域可采用新交付方式甚至是全面重塑。数据库作为重要的基础软件,也与其全面结合,产生很多新方向。
2. 回顾AI与数据库的结合
这里我们重点关注AI4DB的方向。传统的数据库设计基于经验方法和规范,需要人工参与(例如DBA)来调整和维护数据库。人工智能技术被用来缓解这些限制,下图所示为机器学习能为数据库带来的一些技术突破:
其中的主要能力包括:参数调优、索引/视图顾问、SQL改写、成本估算、连接顺序优化等。从上述能力可见,AI4DB的方向重点是解决数据库运行问题,包括很多产品页都提出了“自治”、“自动驾驶”的概念。也就是说,是主要解决数据库自身问题。与之不同的是,ChatGPT更多是解决人与数据库间及数据自身的问题。
3. 畅想ChatGPT与数据库结合
❖ 生成 SQL 语句(受益方:开发者、分析师)
这是目前最为常见的一类应用,将传统SQL语句编写,改为自然语言描述。通过这样的方式,降低数据库使用门槛,提升开发效率。主要受益的人群是数据库应用的开发者及数据探索者(如数据分析师)。很多产品纷纷集成了这一能力,如国内的NineData、Bytebase或者国外的sqlTranslate、AI2sql等。下面我们做个小测试,观察下ChatGPT能力(以下基于ChatGPT 3.5测试)
通过这个简单例子,可以看出ChatGPT具备的能力。可将自然语言描述生成对应SQL。
❖ 性能优化(受益方:DBA、开发者)
ChatGPT另外一个能力,则是对数据对象或语句的优化能力。如下文是给出的一些通用性建议
当然上述优化建议还是比较通用的,当然针对具体对象的优化也是可以的。再如下文是对语句级提出的优化建议
上述能力可以解决很多常规的性能问题,能大大简化开发者和初级DBA的很多工作,可以说能解决大部分的初级性能问题。
❖ 结构设计(受益方:DBA、开发者)
除了根据已有对象或语句完成优化提示外,ChatGPT还可以前置完成结构的设计。根据的简单的场景描述,给出数据库结构定义,简化结构设计工作。如下图就是一个简单登记学生成绩系统的库表设计。这其中包括了主要表、字段、约束等的定义,还是比较全的。
❖ 架构设计(受益方:DBA、架构师)
如果再进一步,将数据库架构设计也由ChatGPT完成如何?下图是我将上述例子场景提出,由ChatGPT提出推荐数据库选型。在明确使用AWS产品范围后,它给出了部分选型的建议。在给出一定性能要求后,甚至给出了推荐规格(db.r5.large)及潜在架构优化点(如读写分离)。
❖ 数据分析、挖掘与探索(受益方:数据分析师)
ChatGPT的一个很强能力在于对信息的理解,这一能力可利用在很多数据分析、挖掘、探索领域。其可以敏锐的洞察到数据的变化、甚至做一些趋势性的分析。如下图是国内各省份2021、2022年的GDP情况,可以这些信息可让ChatGPT估算今年的GDP。
❖ 数据治理(受益方:数据管理者、安全人员)
企业内包含着大量业务数据,如何有效利用数据,形成数据资产,进而发挥数据最大价值是企业管理者关心的问题。传统方式需要通过数据建模等手段自上而下完成治理动作,但受限于企业发展阶段、应用开发水平等因素,这种方式会存在很大推进难点。ChatGPT提供了另外一种可能,即从数据本身含义理解做起,自下而上完成治理结构的构建。例如我们提供一组数据给ChatGPT,看它是符合判断数据属性的
亦或是给出明确规则定义的情况下,判断数据质量问题
写在最后:
综上,ChatGPT在构建数据应用的全流程中均可发挥作用。从前期的架构、结构设计,到中期的应用开发与优化,再到后期的数据分析挖掘乃至数据治理领域。可以说覆盖了企业对数据及上层应用的方方面面。当然,除了简化开发外其他能力当前还稍显初级,但相信随着其技术本身的成熟及垂直领域的定向增强,未来构建全自动的数据应用将不是幻想。可能只需要提出一个业务Idea,后续从应用设计、开发,到资源选型、部署,再到应用运营分析等,都可以自助完成。