机器都能写SQL了,CURD boys(girls)慌不慌

背景

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

CURD代表创建(Create)、更新(Update)、读取(Retrieve)和删除(Delete)操作。 大量应用业务代码,总是一些curd的东西。随着人工智能发展,机器生成代码已经变成可能,前段时间GitHub官方和openAI联合为程序员们送上编程神器——GitHub Copilot。
程序员只要写下一段注释,Github Copilot就可以补全剩下的代码、提出改进的建议。

微信图片_20210630205206.gif

今天我们来看另一种可能性:我们输入一串汉字,计算机帮我们从数据库中直接获取我们要的统计数据。这样连代码都不用机器生成了,计算机直接可以帮终端用户解决一些常用的数据分析需求了。先来看下最终效果

在这里插入图片描述

系统搭建

我们先来描述下系统搭建过程,最后再介绍一下原理,搭建过程很简单,大家有时间可以自己上手实验下,这里用到了百度的Sugar可视化服务以及云数据库MemFireDB

  1. 我们先登录MemFireDB,将已经准备好的数据上传上去,这里我们准备三张表,stockbars股票原始信息、stockrsvs我们计算的rsv指标、stockkdj我们计算的kdj指标,具体如何上传数据以及计算指标可以参看另外一篇文章 https://juejin.cn/post/6979204911879684104

image.png

  1. 我们进入百度Sugar配置数据源以及数据模型,配置数据源时用到的数据库IP在MemFireDB控制台中获取,这里我们需要把表stockrsvs和stockkdjs两个表进行内连接,连接字段用stock_id和date

image.png
关联好的数据可以点击“查看数据”进行预览

image.png

  1. 打开数据模型的“智能问答”选项,数据模型会先变为“待训练”,后变为“训练完成”,默认使用数据字段的「物理字段名称」以及「数据模型中的显示名称」来匹配数据字段,如果需要通过更多的说法来对数据字段进行匹配,可以对数据字段配置同义词这里还可以配置每个字段的同义词。

image.png

  1. 最后、创建“AI探索页面”,勾选已经开启了“智能问答”选项的数据模型即可完成上面视频中的效果,是不是很简单

image.png

好了,系统搭建完了,是不是迫不及待的想知道系统实现的原理呢,这里用到了数据技术以及人工智能的NL2SQL技术,数据库系统提供了数据的存取和SQL语句的解析,sugar则提供了自然语言到SQL的转换

技术原理

NL2SQL是自然语言处理技术的一个研究方向,可以将人类的自然语言自动转化为相应的SQL 语句(Structured Query Language结构化查询语言),进而可以与数据库直接交互、并返回交互的结果。比如我们问:大众 10 万到 20 万之间的车型有几种?NL2SQL可以让机器理解这样的自然语言,并从表格中检索出答案。

NL2SQL,让非专业人士,不需要学习和掌握数据库程序语言,就可以自由地查询各种丰富的数据库:
说句话就行。没有条条框框的限制,内容和信息更加丰富。以前是程序员写一个“模板”,在这个模板里查询内容。
NL2SQL的实现,运用了大量前沿的人工智能算法模型,比如运用了多个预训练语言模型,相当于AI大脑,让AI读懂用户语言;运用了图神经网络,让AI“看到”数据库, 一目十行过目不忘,而且更加清晰地分清每个表格内容。

image.png

总结

最后,前一两年NL2SQL还在一些学术研究阶段,准确率还只有60%左右,今天我们已经看到了百度已经推出了可以商用的系统,人工智能的发展太迅速了,他不光替代的是简单的重复劳动,现在连写代码的事情也可以代劳了,小伙伴们,你们颤抖么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值