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 开发和数据分析的效率。目前 DataWorks Copilot 已经开启“邀测”,可以到阿里云 DataWorks 产品详情页面申请,也可联系您的客户经理或者解决方案架构师申请。

最后,欢迎大家到阿里云官网免费试用 DataWorks 产品,您可以免费开通DataWorks 基础版本并免费领取一个 8 核 16GB 的独享数据集成资源组,DataWorks 同时也提供了公共数据集和工作流模板帮助你快速了解和进行数据开发和分析。以上就是本次分享的内容,谢谢大家。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/726245.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构_二叉树

目录 一、树型结构 二、二叉树 2.1 概念 2.2 特殊的二叉树 2.3 二叉树的性质 2.4 二叉树的存储 2.5 遍历二叉树 2.6 操作二叉树 总结 一、树型结构 树是一种非线性的数据结构,它是由 n(n>0) 个有限结点组成一个具有层次关系的集合,一棵 n 个…

程控漏电流测试电阻箱的应用

程控漏电流测试电阻箱是用于测量和控制电流的设备,广泛应用于电力系统、电子设备、自动化设备等领域。它的主要功能是通过改变电阻值来控制电流的大小,从而实现对设备的保护和控制。 程控漏电流测试电阻箱在电力系统中有着重要的应用,电力系统…

调教NewspaceGPT之GPT4o实战

NewspaceGPT地址:https://newspace.ai0.cn 需求一:我需要一个创意logo 我的问题 我觉得我的描述对一个设计人员来说时精准的,但是不具体的。 需求描述:我需要一个logo。 表现司法公正和司法数字化,人工智能化 。 Ne…

微信聊天记录导出为电脑文件实操教程(附代码)

写在前面 最近,微信中加的群有点多,信息根本看不过来。如果不看,怕遗漏了有价值的信息;如果一条条向上翻阅,实在是太麻烦。 有没有办法一键导出所有聊天记录? 一来翻阅更方便一点,二来还可以…

乐鑫esp32系列睡眠模式下蓝牙连接功耗测试,新支持ESP-C6,启明云端乐鑫代理商

本教程适用于ESP32-S3、ESP32-C3、ESP32-C6; 睡眠模式介绍 ESP32系列常见的休眠方式有三种,分别为Modem-sleep、Light-sleep 和 Deep-sleep。 Modem-sleep模式:CPU 正常工作,可以对时钟进行配置。 进入 Modem-sleep 模式后&…

康谋分享丨从CAN到CAN FD:ADTF在汽车网络中的应用

来源:康谋分享丨从CAN到CAN FD:ADTF在汽车网络中的应用 原文链接:https://mp.weixin.qq.com/s/qCrsXV0D8No3bH6QsgupHg 欢迎关注虹科,为您提供最新资讯! #CAN #CAN FD #ADTF 随着汽车电子技术的发展,车辆…

直播电商源码(直播带货,短视频带货,DIY首页,商城运营)

随着互联网技术的飞速发展,直播电商已成为数字营销的新宠儿。直播电商源码作为支撑这一商业模式的技术基础,其重要性不言而喻。本文将深入探讨直播电商源码的概念、功能以及在现代电商领域的应用。 直播电商源码概述 直播电商源码,简而言之…

【C++题解】1324 - 扩建鱼塘问题

问题:1324 - 扩建鱼塘问题 类型:分支问题 题目描述: 有一个尺寸为 mn 的矩形鱼塘,请问如果要把该鱼塘扩建为正方形,那么它的面积至少增加了多少平方米? 输入: 两个整数 m 和 n 。 输出&…

北京大学数字普惠金融指数(2011-2022年)

北京大学数字普惠金融指数(2011-2022年),包含省市县三级数据 数据年限:省级、地级市(2011-2022年);区县(2014-2022年) 数据格式:excel、pdf 数据来源&#xf…

作为老司机,网站啥调性,第一屏就看出来了,还需往里看么。

网站的第一屏指的是用户在打开网站时首先看到的内容区域。这个区域通常包括网站的头部、导航栏、主要的视觉元素和重要的信息。第一屏的设计和呈现方式会对用户的第一印象产生重要影响,因此它能够决定网站的整体调性。 以下是一些原因解释为什么第一屏决定了网站的整…

[SAP ABAP] MESSAGE消息处理

常用的MESSAGE命令的字符 信息类型描述EError 出现错误消息,应用程序在当前点暂停 WWarning 出现警告消息,用户必须按Enter键才能继续应用程序 IInformation 将打开一个弹出窗口,其中包含消息文本,用户必须按Enter键才能继续 SSu…

忘记 iPhone 密码:如果忘记密码,如何解锁 iPhone

为了提高个人数据的安全性,用户通常会为不同的帐户和设备创建不同的复杂密码。虽然较新的 iPhone 型号具有生物识别和面部解锁功能,但这些功能并不总是有效 - 如果您忘记了 iPhone 的密码,您可能会遇到麻烦。 iPhone 用户和 Android 用户一样…

Python12 列表推导式

1.什么是列表推导式 Python的列表推导式(list comprehension)是一种简洁的构建列表(list)的方法,它可以从一个现有的列表中根据某种指定的规则快速创建一个新列表。这种方法不仅代码更加简洁,执行效率也很…

ARM64汇编0C - inlinehook

本文是ARM64汇编系列的完结篇,主要利用前面学过的知识做一个小实验 完整系列博客地址:https://www.lyldalek.top/article/arm 这里只讨论 ARM64 下的 inlinehook,做一个简单的demo,只是抛砖引玉,有兴趣了解更多细节的可…

Treeselect是介绍及使用(梳理了我使用这个组件遇到的大部分问题)

介绍: Treeselect是一款基于Vue.js的树形选择器组件,可以快速地实现树形结构的选择功能。 这里梳理了我使用这个组件遇到的大部分问题 安装依赖: 首先,你需要在你的项目中安装Treeselect的依赖。这通常可以通过npm或yarn等来完…

多线程(总结黑马程序员)

一、什么是线程? 是一个程序内部的一条执行流程 多线程是什么? 多条线程由CPU负责调度执行 多线程的创建方式一:继承Thread类 //1.继承Thread类 public class MyThread extends Thread {//2.必须重写run方法Overridepublic void run() {…

理解HTTP请求格式

HTTP概念 HTTP全称HyperTextTransfer Protocol(超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议;HTTP是一个客户端(用户)和服务端(网站)之间请求和响应的标准。 HTTP 协议是以 ASCII 码传输&…

FreeRtos-13资源管理

一、临界资源是什么 要独占式地访问临界资源,有3种方法: 1.公平竞争:比如使用互斥量,谁先获得互斥量谁就访问临界资源,这部分内容前面讲过。 谁要跟我抢,我就灭掉谁: 2.中断要跟我抢?我屏蔽中断 3.其他任务要跟我抢?我禁止调度器,不运行任务切换 二、暂停调度器…

【漏洞复现】极限OA video_file.php 任意文件读取漏洞

免责声明: 本文内容旨在提供有关特定漏洞或安全漏洞的信息,以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步,并非出于任何恶意目的。阅读者应该明白,在利用本文提到的漏洞信息或进行相关测…

线性回归模型介绍

线性回归模型是一种统计方法,用于分析两个或多个变量之间的关系。它通过拟合一条直线(称为回归线)来描述因变量(或目标变量)和一个或多个自变量(或预测变量)之间的关系。这种模型主要用于预测和解释变量间的线性关系。以下是线性回归模型的简单介绍: 1. 线性回归模型的…