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 同时也提供了公共数据集和工作流模板帮助你快速了解和进行数据开发和分析。以上就是本次分享的内容,谢谢大家。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

推荐一款功能强大的显示器!

最近在写项目开发文档,经常需要几个界面来回切换,真的深刻感受到了一台外接显示器对一名程序员来说有多重要了,画功能流程图的时候嫌弃自己的笔记本屏幕不够大,看代码的时候又在想要是有个旋转屏就好了,来回切换界面的…

【JavaScript复习二】选择结构if和Switch(1)

### []( )2、单分支条件分支语句if (条件表达式) { // 条件为真时,做的事情 } else { // 条件为假时,做的事情 } ### []( )2,、多分支的 if 语句if (条件表达式1) { // 条件1为真时,做的事情} else if (条件表达式2) { // 条件1不满足&…

kafka学习笔记07

Kafka高可用集群搭建节点需求规划 开放端口。 Kafka高可用集群之zookeeper集群搭建环境准备 删除之前的kafka和zookeeper。 重新进行环境部署: 我们解压我们的zookeeper: 编辑第一个zookeeper的配置文件: 我们重复类似的操作,创建三个zookeeper节点: 记…

SM4 国密——加密,解密

SM4 国密的使用 前言——引用管理包SM4解密——ECB模式SM4加密——ECB模式SM4解密——CBC模式SM4加密——CBC模式SM4工具类SM4主体类SM4实体类 前言——引用管理包 引用NuGet管理包BouncyCastle.Crypto SM4解密——ECB模式 public string CiphertextParsing(string json) {tr…

【数学建模】解析几何与方程模型

文章目录 解析几何与方程模型1.几何建模思想2.Numpy在线性代数中的使用3.国赛求解3.1题目3.2 问题1求解建立模型代码求解 3.3 问题2求解 4.问题答疑Q1:什么是行列式,其使用场景是什么行列式的定义行列式的性质行列式的使用场景 Q2:2023B题问题一用相似三角形求解覆盖…

sql server 非sa账号配置发布订阅

如果有些源端环境,sa账号被禁用,或者有其他问题,那可以按以下步骤操作。 使用高权限账户登录,另外需要拥有源端windows用户管理员的账号和密码 表发布订阅成功的前提:发布的表必须有主键。 创建一个专门用于发布订阅的…

国际导师上海面授大规模敏捷LeSS认证2024年8月22-24日开班 | 报名享特大福利

课堂互动练习 学员反馈 • “LeSS课我正经听过的有3次;两次Bas Vodde主讲,一次吕毅老师主讲。第一次应该是2015年,这门课中体现的对组织运作和产品开发底层逻辑的洞见令我折服。后来又陆续听了两次,每次都有更多体会。 我试着从一…

【递归、搜索与回溯】综合练习四

综合练习四 1.单词搜索2.黄金矿工3.不同路径 III 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.单词搜索 题目链接:79. 单词搜…

杨辉三角的快速求法

一、杨辉三角形 杨辉三角形,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列,是二项式系数在三角形中的一种几何排列,古称“开方作法本源图”。 杨辉三角的历史 北宋人贾宪约1050年首先使用“贾…

2024年,计算机相关专业依旧是热门选择吗?未来趋势大揭秘!

文章目录 引言一、行业竞争现状二、专业与个人的匹配度判断三、专业前景分析总结 引言 在科技日新月异的今天,计算机专业一直以其强大的实用性和广阔的就业前景吸引着无数学子的目光。然而,随着人工智能、大数据、云计算等领域的飞速发展,我…

「51媒体」活动会议,展览展会,直播曝光的一种方法

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 我们在做活动会议,或者参加展览展会,需要进行直播的时候,可以通过一键同步多个媒体平台的方法,来扩大曝光,比如一场直播我们可…

FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成FFmpeg

《FFmpeg开发实战:从零基础到短视频上线》一书的“第11章 FFmpeg的桌面开发”介绍了如何在Windows环境对Qt结合FFmpeg实现桌面程序,那么Windows系统通过Visual Studio开发桌面程序也是很常见的,下面就介绍如何在Visual Studio的C工程中集成F…

弃用Docker Desktop:在WSL2中玩转Docker之Docker Engine 部署与WSL入门

Docker技术概论 在WSL2中玩转Docker之Docker Engine部署 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://bl…

【unity笔记】四、Enviro- Sky and Weather插件使用

一、 简介 Enviro内置 RP、URP、HDRP,开箱即用。 动态天空 随附的天空系统经过精心设计,以实现最佳性能和灵活性。使用多种颜色渐变,而不是调整人工数字。为您的项目创建独特且非常逼真的天空非常简单! 灯光 由 Enviro 控制的逼…

Python学习打卡:day10

day10 笔记来源于:黑马程序员python教程,8天python从入门到精通,学python看这套就够了 目录 day1073、文件的读取操作文件的操作步骤open()打开函数mode常用的三种基础访问模式读操作相关方法read()方法readlines()方法readline()方法for循…

计算机组成原理---Cache的基本工作原理习题

对应知识点: Cache的基本原理 1.某存储系统中,主存容量是Cache容量的4096倍,Cache 被分为 64 个块,当主存地址和Cache地址采用直接映射方式时,地址映射表的大小应为()(假设不考虑一致维护和替…

LeetCode 算法:删除链表的倒数第 N 个结点 c++

原题链接🔗:删除链表的倒数第 N 个结点 难度:中等⭐️⭐️ 题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出&#xff1a…

【无线传感网】LEACH路由算法

1、LEACH路由算法简介 LEACH协议,全称是“低功耗自适应集簇分层型协议” (Low Energy Adaptive Clustering Hierarchy),是一种无线传感器网络路由协议。基于LEACH协议的算法,称为LEACH算法。 2、LEACH路由算法的基本思想 LEACH路由协议与以往的路由协议的不同之处在于其改变…

ElasticSearch地理空间数据写入

目录 ElasticSearch地理空间数据写入思路介绍实现(geo_point)数据处理创建点的mappings使用Java将数据写入ES配置maven依赖项目配置ES数据写入查询数据实现(geo_shape)数据处理创建geo_shape的mappings使用Java将数据写入ES数据写入查询数据ElasticSearch地理空间数据写入 申明…

欧拉函数的求解

欧拉函数的定义 欧拉函数的性质 性质1是性质2的特殊情况 性质1的理解:一个数a是质数,前面的数b与a的gcd一定是1 性质2的理解:1,2,…p,p1,p2…2p,…3p…p^k 其中以np结尾的序列重复了p^(k-1)次,每一次的循环…