DataWorks Copilot:大模型时代数据开发的新范式

导读

DataWorks 是阿里云一站式智能化数据开发与治理平台,支持搭配MaxCompute/Hologres/AnalyticDB/StarRocks/EMR/CDH 等大数据引擎,为企业构建数据仓库、数据湖以及湖仓一体(Lakehouse)现代数据架构提供数据平台产品解决方案。
作为阿里巴巴大数据平台建设者,DataWorks 从 2009 年起不断发展和沉淀阿里巴巴大数据建设方法论并产品化,在阿里内部每月有超过50000 名员工在使用 DataWorks 生产数据和消费数据。DataWorks 在阿里云上与数万家政务/金融/零售/互联网/能源/制造等客户携手,助力企业数字化转型升级,目前 DataWorks 云上日均调度任务实例规模已经超 1700 万。


随着大模型的不断发展,大模型在数据产品中的应用也逐步得到了验证和落地,DataWorks 也于去年正式推出了 Copilot 产品,以帮助数据开发工程师和数据分析师提升SQL 开发和分析的效率和体验。今天,我想给大家介绍一下 DataWorks Copilot 近期的一些产品进展。
本文将会围绕以下几点展开:

  1. 阿里云 DataWorks 产品简介
  2. DataWorks Copilot 产品演进方向
  3. DataWorks Copilot 之 NL2SQL
  4. DataWorks Copilot 之 SQL 代码补全
  5. 小结

分享嘉宾田奇铣 阿里云DataWorks产品负责人,高级产品专家
在大数据平台产品建设领域具备 10 年以上工作经验,在数据开发、数据治理等领域具备丰富的实践经验,支持了阿里巴巴内部的数据中台建设和阿里云上企业的数字化转型。

一、阿里云 DataWorks 产品简介

DataWorks 是阿里云一站式智能化数据开发与治理平台,DataWorks 是一站式数据平台的倡导者和践行者。DataWorks 支持搭配阿里云大数据计算服务 MaxCompute,实时数据仓库 Hologres、AnalyticDB、StarRocks,开源数据湖及湖仓一体平台 EMR、CDH 等计算引擎,提供了以下产品服务:

  • 数据集成:支持离线数据同步、实时数据同步,同时支持整库数据同步、分库分表数据同步、全增量一体化数据同步、数据入湖等场景。
  • 数据开发工具链:支持数据建模、数据开发、任务调度和任务运维监控,DataWorks 自研的大规模、高性价比、全托管免运维的任务调度引擎,能够保障企业大数据生产的安全性和稳定性,让企业专注于数据业务本身。
  • 数据治理工具链:支持数据地图、数据质量、数据安全和数据资产治理,DataWorks 提供了主动式、自动化的数据治理工具,帮助企业主动发现数据问题、自动化处置数据问题并实时评估数据健康程度,让企业数据治理可持续发展和落地。
  • 数据消费工具链:支持智能数据洞察,通过 AI 增强分析帮助企业快速获得数据见解;支持数据服务,通过低代码化数据 API 构建与编排服务加速企业数据应用和数据流转。

进入大模型时代,一站式数据平台为全面智能化创造了条件,通过 Data + AI 双轮驱动,有效提升了企业数据价值的获取效率。在大模型应用过程中,Prompt Engineering 环节尤为重要,一站式数据平台可以提供全面的数据支持和丰富的上下文信息,利用大模型 In-Context Learning 的能力,可以帮助大模型更好地理解企业业务知识;同时,借助 AI Agent 能力,可以实现通过统一的自然语言交互界面与图形交互界面相结合的方式,让一站式数据平台内部的子产品模块做到更好的协同,从而实现一站式数据平台的全面智能化,为企业数据开发工程师、数据分析师和业务人员在数据生产和数据消费提供更好的用户体验和更高的工作效率,最终帮助企业进一步实现“降本增效”。


二、DataWorks Copilot 产品演进方向

目前 DataWorks Copilot 主要有两个演进方向,一个方向是智能 SQL 编程助手,辅助 SQL 编程,支持 NL2SQL 及 SQL 代码补全;另一个方向是 AI Agent,提供 LUI(自然语言用户界面),以提升产品功能操作的便捷性和用户体验。本文主要介绍 DataWorks Copilot 在智能 SQL 编程助手方向上的产品进展与产品能力。

三、DataWorks Copilot 之 NL2SQL

NL2SQL(自然语言生成 SQL)并不是一个新的产品方向,在大模型出来之前已经发展了很多年,但一直没能取得突破性进展,只能在特定场景使用,并且需要做大量的事先数据准备和知识图谱构建。大模型的出现,让 NL2SQL 迎来了曙光,极大提升了 NL2SQL 的普适性,简化了 NL2SQL 的实现路径,让 NL2SQL 具备了广泛落地应用的可能。DataWorks Copilot 通过大模型技术,在 NL2SQL 方向经过一年多的实践,我们在以下几个应用场景取得了较好的落地效果。

1. 简单数据查询

数据查询,即通过自然语言生成 SQL,再执行 SQL 以查询数据,也就是我们日常所说的“取数”场景。目前 DataWorks Copilot 在单表数据查询场景已经有不错的效果,比如“按日志和行为分组统计用户数量和商品数量,行为包含浏览和加购,日期从 20240101 到 20240331”,Copilot 能够准确理解语义和数据表的 Schema 信息并生成正确的 SQL 语句。这个十分适合数据分析师、业务人员日常实现通过“说话”就可以便捷地查询和获取数据。


2. SQL 优化与转换

DataWorks Copilot 可以帮你实现 SQL 优化和转换,这其实是一个 SQL 生成 SQL 的场景,比如你有一个 SQL 执行后的结果是一组多列的数据集,你想把这个数据集转为多行的数据集,以便用于绘制出一个饼图,你只需要选中当前的 SQL 然后对 Copilot 说“修改 SQL,将其结果从列转置为行”,DataWorks Copilot 就会帮你生成列转行的 SQL。有了 DataWorks Copilot,你不用记忆复杂的 SQL 技巧,只需要用自然语言说出你心里想要的效果,Copilot 可以自动帮你改写和优化 SQL,让你事半功倍。


3. SQL 语法查询与讲解

DataWorks Copilot 也是一个非常聪明的、随叫随到的 SQL 学习小助手,它可以帮助你查询 SQL 语法,让你学习 SQL 不用再去翻阅帮助文档、用搜索引擎或者求助别人。DataWorks Copilot 根据你问的 SQL 问题进行详细的讲解,还会附带 SQL 示例帮助你更好的学习理解。


4. 函数查询

与语法查询类似,DataWorks Copilot 还可用于查询函数,它同样会给出包含函数功能介绍、输入输出参数和 SQL 示例在内的信息,帮助你快速理解函数。


5. 功能咨询

有时候,你想要通过 SQL 实现一个功能,但你既不知道要用哪种 SQL 语法也不知道用哪个函数来实现,这时,你只需要对 DataWorks Copilot 直接用自然语言描述你的诉求(Tips:尽可能的直白描述你想要达到的功能效果),例如“一张表有一个自动递增的 id 字段,不连续,如何按页获取 id 的范围”,Copilot 就会直接给出建议并帮你写好 SQL 示例。


6. 注释生成

我们通常自己懒得写代码注释,同时又讨厌别人的代码不写注释,有了 DataWorks Copilot 这个“矛盾”就可以轻松化解。Copilot 可以一键为你的 SQL 代码生成注释,比如批量为你的 DDL 语句生成字段的 Comment,你只需要进行简单的微调即可,这将极大地提高你的 SQL 可读性和开发效率。


7. SQL 解释

DataWorks Copilot 不仅可以为 SQL 注释,也可以解释 SQL。如果你是一名略懂些 SQL 但又不十分精通 SQL 的同学,在工作中经常要向数仓工程师或者 BI 同学提“取数”的需求,对方给你一条复杂 SQL 语句,你似懂非懂但又想改下 SQL 以用于别的场景,这个时候就可以让 DataWorks Copilot 来解释一个这个 SQL。Copilot 会耐心的将这个复杂 SQL 拆解为多段子查询,并逐一讲解其中的功能,介绍其中使用到的函数,帮助你理解这个 SQL 写法和用途,让你快速掌控这个 SQL 语句。


8. SQL 一键纠错

即使是专业的数据工程师也会在 SQL 开发过程中出现各类 SQL 错误,例如缺少标点、括号、函数使用不正确、语法不完整等等。这些场景,DataWorks Copilot 都可以帮助你快速发现问题,纠正错误,并生成正确的 SQL,从而大大降低你自己寻找错误和纠正 SQL 的时间。


以上是 DataWorks Copilot 在 NL2SQL 方向上的 8 种适用场景和能力,当然,DataWorks Copilot 可能还会很多让人意想不到的点,你可尽情发挥你的想象,通过 Prompt 让 Copilot 为你生成 SQL,让你从繁复的 SQL 编程中提升效率,有更多的时间来思考业务本身。

四、DataWorks Copilot 之 SQL 代码补全

代码补全是编程类 Copilot 的主要场景和能力。目前市场上主流的编程类 Copilot 往往是对 Java、Python 等高级语言的支持,对 SQL 支持的好的并不多见。众所周知,SQL 代码补全往往比 Java、Python 类高级语言的代码补全更具挑战性,主要原因有以下几个方面:

  • 上下文和环境的依赖性:SQL 代码不是独立存在的,而是依赖于数据表的元数据信息以及表与表之间的关联关系。
  • SQL 语义多样性:实现同一种查询结果,可以有多种 SQL 写法,如何实现“最佳”写法存在挑战。
  • 语法简洁但高度专业化:SQL 语法简洁但每一个关键字、函数或语法都有特定的含义,大模型要准确理解这些得通过针对性的训练学习。
  • 执行计划和性能考量: 这跟数据库底层的执行计划有关,需要考虑如何书写才能使 SQL 的性能最优。
  • 数据库特异性:市面上不同的数据库往往存在不同的 SQL 方言,存在差异,针对这种差异性我们要投入大量时间做 SQL 数据集准备、数据标注、模型微调。
  • 高度业务相关性:SQL 语句通常与特定业务高度相关,比如一个指标存在特定的计算口径,这是与公司业务相关,通用的大模型也无法提前学习。

n公开的 SQL 数据集比 Java、Python 少:这导致基模型本身对 SQL 的理解和能力就比 Java、Python 等语言要差。
DataWorks Copilot 针对以上的几个挑战,面向 SQL 代码补全方向做了大量的模型微调和 Prompt Engineering 工作,并发挥出一站式平台的优势,目前在 SQL 补全的准确性已经优于通用类编程 Copilot。以下列举几项目前 DataWorks Copilot SQL 代码补全比较擅长的场景。

  • 有规律的代码连续推荐:例如 case when 语句,只需写出前一两行,Copilot 就知道接下来该怎么写。
  • 字段、字段别名推荐:Copilot 可以借助元数据信息自动推荐一些关联的字段,还可以自动生成字段别名。
  • 注释推荐、分区字段推荐、Group by 字段推荐、Order by 字段推荐等。
  • 根据上下文自动联想推荐代码:比如下图中展示了根据 SELECT 语句,推荐出 INSERT OVERWRITE 代码和 CREATE TABLE 代码,Copilot 可以帮助你轻松将写好的 SELECT 语句转化为一个用于生产调度的数据任务。

五、小结

以上我们介绍了 DataWorks Copilot 目前在智能 SQL 编程助手方向所具备的能力,主要包括:自然语言生成 SQL、SQL 代码补全、注释生成、SQL 解释、问答/函数查询、SQL 纠错、SQL 优化等。


希望 DataWorks Copilot 可以成为你的私人 SQL 编程助手,帮助你学习 SQL、编写 SQL,提升 SQL 开发和数据分析的效率。

以上就是本次分享的内容,谢谢大家。

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

推荐阅读更多精彩内容