DataWorks Copilot 智能助手动手实践

在本实验中,您将体验到DataWorks Copilot在编程助手方面的能力,包括代码生成、代码改写、代码解释、代码补全,一键纠错、语法和函数解释等。此外,您还可探索多项小而美的Agent能力,如AI建表、智能图表生成、节点及函数发布的描述生成等。

背景介绍

DataWorks简介

DataWorks是智能湖仓一体数据开发治理平台,内置阿里巴巴15年大数据建设方法论,深度适配阿里云MaxCompute、E-MapReduce、Hologres、Flink、PAI 等数十种大数据和AI计算服务,为数据仓库、数据湖、OpenLake湖仓一体数据架构提供智能化ETL开发、数据分析与主动式数据资产治理服务,助力“Data+AI”全生命周期的数据管理。自2009年起,DataWorks不断对阿里巴巴数据体系进行产品化沉淀,服务于政务、金融、零售、互联网、汽车、制造等行业,使数以万计的客户信赖并选择DataWorks进行数字化升级和价值创造。

DataWorks Copilot,DataWorks智能助手,它能够根据自然语言快速完成多种代码相关操作及DataWorks产品操作。使用DataWorks Copilot,可帮助您轻松、高效、便捷地完成数据ETL及数据分析工作,节省大量时间和精力。

注意事项

  • 当前DataWorks Copilot产品公测地域:华东1(杭州)、华东2(上海)、华北2(北京)、华北3(张家口)、华南1(深圳)及西南1(成都)。

  • 当前DataWorks Copilot入口已覆盖:Data Studio、数据分析、数据质量、数据服务、数据地图。

  • DataWorks Copilot支持的语言类型包含SQL及Python,本实验以SQL操作为主。

  • DataWorks Copilot不区分引擎,支持所有代码类节点,本实验以MaxCompute节点为示例。

环境准备

开通DataWorks

  1. 登录免费试用

    进入阿里云免费试用,单击页面右上方的登录/注册,根据页面提示完成账号的登录操作。

    • 账号登录:已有阿里云账号则直接登录。

    • 账号注册:若无阿里云账号,需先进行账号注册。

    • 实名认证:根据试用产品要求完成个人实名认证或企业实名认证。

  2. 成功登录后,在免费试用页面单击DataWorks Serverless 资源组免费试用套餐立即试用按钮。

  3. 在弹出的DataWorks产品购买面板选择开通地域为华东2(上海),勾选服务协议后单击确认订单并支付,按照界面指引开通DataWorks。

实验步骤

说明

以下实验不分先后次序,您可按需体验。

NL2Code

DataWorks Copilot支持根据自然语言返回SQL代码。

  1. Data Studio页面,单击项目目录右侧的image,单击级联菜单中的“MaxCompute SQL进入MaxCompute SQL节点编辑功能界面。

    image

  2. 在进入工作流编辑功能界面前,请先输入名称节点,键盘敲击回车键,等待即可。

    预设节点名称ads_ec_ec360_gmv_kpi_overview

    image

  3. 代码编辑器中,单击Copilot,进入Copilot功能界面。在Copilot功能界面中输入指令,单击发送按钮,等待Copilot返回结果。

    预设指令基于dwd_ec_trd_create_ord_di表,统计2024年9月1日至2024年9月18日每个spu的销售额、销量、sku数量、买家数量、卖家数量

    image

    image

代码补全

DataWorks Copilot支持在编写代码过程中为您进行代码补全。

Data Studio页面,新建一个MaxCompute节点,在代码编辑器中,单击Copilot,进入Copilot功能界面。输入任意一段包含表名的代码片段,输入空格或者回车,等待Copilot返回结果。

预设代码

--分析2024年9月电子商务网站销售订单分析
SELECT  ds
        ,spu_id
        ,SUM(sales_amt) AS total_sales
        ,COUNT(DISTINCT order_id) AS total_orders
        ,COUNT(DISTINCT sku_id) AS total_skus
        ,COUNT(DISTINCT buyer_id) AS total_buyers
FROM    default.dwd_ec_trd_create_ord_di
WHERE   order_date BETWEEN '2024-09-01' AND '2024-09-18'
;

image

智能问答

DataWorks Copilot支持根据自然语言对已有代码进行纠错、注释生成及代码解释等操作。同时,它还支持为您解答SQL相关的语法及函数问题。

SQL改写

Data Studio页面,新建一个MaxCompute节点,在代码编辑器中,输入并选中任意一段代码,单击顶部菜单栏右侧的Copilot,进入Copilot Chat功能界面,在Chat输入框中,输入您的改写要求,单击发送,等待Copilot返回结果。

  • 预设指令修改sql,将其结果从列转置为行,使用unpivot实现

  • 预设代码

    --分析2024年9月电子商务网站销售订单分析
    SELECT  ds
            ,spu_id
            ,SUM(sales_amt) AS total_sales
            ,COUNT(DISTINCT order_id) AS total_orders
            ,COUNT(DISTINCT sku_id) AS total_skus
            ,COUNT(DISTINCT buyer_id) AS total_buyers
            ,COUNT(DISTINCT buyer_id) / COUNT(DISTINCT order_id) AS avg_buyers_per_order
            ,COUNT(DISTINCT buyer_id) / COUNT(DISTINCT sku_id) AS avg_buyers_per_sku
            ,SUM(sales_amt) / COUNT(DISTINCT order_id) AS avg_sales_per_order
            ,SUM(sales_amt) / COUNT(DISTINCT sku_id) AS avg_sales_per_sku
    FROM    default.dwd_ec_trd_create_ord_di
    WHERE   order_date BETWEEN '2024-09-01' AND '2024-09-18'
    GROUP BY ds
    ,spu_id
    ORDER BY total_sales DESC
    LIMIT   10
    ;

image

SQL 纠错

Data Studio页面,新建一个MaxCompute节点,在代码编辑器中,输入并选中任意一段代码,鼠标右键,单击右键功能列表中的Copilot,在二级功能列表中找到并单击SQL纠错,进入Copilot Chat功能界面,单击发送,等待Copilot返回结果。

预设代码

--分析2024年9月电子商务网站销售订单分析
SELECT  ds
        ,spu_id
        ,SUM(sales_amt) AS total_sales
        ,COUNT(DISTINCT order_id) AS total_orders
        ,COUNT(DISTINCT sku_id) AS total_skus
        COUNT(DISTINCT buyer_id) AS total_buyers
        COUNT(DISTINCT buyer_id) / COUNT(DISTINCT order_id) AS avg_buyers_per_order
        ,COUNT(DISTINCT buyer_id) / COUNT(DISTINCT sku_id)  AS avg_buyers_per_sku
        ,SUM(sales_amt) / COUNT(DISTINCT order_id) AS avg_sales_per_order
        ,SUM(sales_amt) / COUNT(DISTINCT sku_id) AS avg_sales_per_sku
FROM    default.dwd_ec_trd_create_ord_di
WHERE   order_date BETWEEN '2024-09-01' AND '2024-09-18'
ORDER BY total_sales DESC
LIMIT   10
;

image

SQL解释

Data Studio页面,新建一个MaxCompute节点,在代码编辑器中,输入并选中任意一段代码,单击顶部菜单栏右侧的Copilot,进入Copilot Chat功能界面,在Chat输入框中,输入您的指令,单击发送,等待Copilot返回结果。

  • 预设指令解释一下这段SQL

  • 预设代码

    SELECT  season
            ,SUM(tran_amt) AS total
    FROM    mf_cop_sales
    PIVOT (SUM(tran_amt) FOR season IN ('Q1' AS spring,'Q2' AS summer,'Q3' AS autumn,'Q4' AS winter))AS pivot_tablel
    ;

image

生成注释

Data Studio页面,新建一个MaxCompute节点,在代码编辑器中,输入并选中任意一段代码,鼠标右键,单击右键功能列表中的Copilot,在二级功能列表中找到并单击生成注释,进入Copilot Chat功能界面,输入您的指令,单击发送,等待Copilot返回结果。

  • 预设指令为每个字段添加注释

  • 预设代码

    CREATE TABLE ods_mbr_user_info
    (
      id                BIGINT
      ,gmt_create       STRING
      ,gmt_modified     STRING
      ,id_card_number   STRING
      ,id_card_type     STRING
      ,is_delete        STRING
      ,nick             STRING
      ,reg_address      STRING
      ,reg_birthdate    STRING
      ,reg_city_id      STRING
      ,reg_email        STRING
      ,reg_fullname     STRING
      ,reg_gender       STRING
      ,reg_mobile_phone STRING
      ,reg_nation_id    STRING
      ,reg_prov_id      STRING
      ,user_active_time STRING
      ,user_active_type STRING
      ,user_id          BIGINT
      ,user_regdate     STRING
      ,user_regip       STRING
      ,vip_level        STRING
    )
    COMMENT '';

image

语法与函数问答

Data Studio页面,单击顶部菜单栏右侧的Copilot,进入Copilot Chat功能界面,在Chat输入框中,输入您的指令,单击发送,等待Copilot返回结果。

  • 预设指令一MaxCompute中如何使用CTE语法

  • 预设指令二MaxCompute中mapjoin怎么写

  • 预设指令三MaxCompute pivot函数如何使用

  • 预设指令四一张表有一个自动递增的id字段,不连续,如何按页获取id的范围

  • 预设指令五我有表t1(name)和表t2(name),请编写sql实现当t1.name为空时用t2.name来填充

image

AI Agent

Data Studio、数据分析、数据地图及数据服务等模块都提供了一些便捷的Copilot操作,利用大模型来降低大家使用产品的难度。如:借助Copilot建表助手,您只需输入表名关键字即可完成表的创建;借助Copilot分析助手,您只需动动手指,即可一键获得面向数据查询结果的可视化图表及数据见解。

智能建表

Data Studio页面,单击左侧一级菜单栏中的数据目录,在数据目录列表中,选择任意一个数据目录,新建表,进入新建表的功能界面,单击页面顶部中的Copilot 建表,进入Copilot 建表功能界面,在输入框中,输入您的指令,单击发送,等待Copilot返回结果。

预设指令会员注册信息表

image

数据图表及见解生成

Data Studio页面,新建一个MaxCompute节点,在代码编辑器中,输入并选中任意一段可运行的代码,单击编辑器上方的运行按钮,等待SQL查询结果,待SQL运行成功且有查询结果数据时,单击查询结果区的图表功能,进入图表功能界面后,单击页面顶部的Copilot,等待Copilot返回结果。

预设代码

-- 读取样例数据
-- 打开MaxCompute三层模型
SET odps.namespace.schema = true
;

-- 确保使用了DECIMAL新实现
SET odps.sql.decimal.odps2 = true
;

SELECT  gross_regional_product -- 地区生产总值(亿元)
        ,value_added_of_the_primary_industry -- 第一产业增加值(亿元)。第一产业增加值是指按市场价格计算的一个国家(或地区)所有常住单位在一定时期内从事第一产业生产活动的最终成果。第一产业是指农、林、牧、渔业。
        ,value_added_of_the_secondary_industry -- 第二产业增加值(亿元)。第二产业增加值是指按市场价格计算的一个国家(或地区)所有常住单位在一定时期内从事第二产业生产活动的最终成果。第二产业是指采矿业,制造业,电力、煤气及水的生产和供应业,建筑业。
        ,value_added_of_the_tertiary_industry -- 第三产业增加值(亿元)。第三产业增加值是指按市场价格计算的一个国家(或地区)所有常住单位在一定时期内从事第三产业生产活动的最终成果。第三产业是指除第一、二产业以外的其他行业。
        ,value_added_of_agriculture_forestry_animal_husbandry_and_fishery -- 农林牧渔业增加值(亿元)
        ,value_added_of_industry -- 工业增加值(亿元)。工业增加值是指工业企业在报告期内以货币形式表现的从事工业生产活动的最终成果。
        ,value_added_of_construction -- 建筑业增加值(亿元)。建筑业增加值是指建筑业企业在报告期内以货币形式表现的从事建筑业生产活动的最终成果。
        ,value_added_of_wholesale_and_retail_trades -- 批发和零售业增加值(亿元)。批发和零售业增加值是指按市场价格计算的一个国家(或地区)所有常住单位在一定时期内从事批发和零售业生产活动的最终成果。
        ,value_added_of_transport_storage_and_post -- 交通运输、仓储和邮政业增加值(亿元)。交通运输、仓储和邮政业增加值是指按市场价格计算的一个国家(或地区)所有常住单位在一定时期内从事交通运输、仓储和邮政业生产活动的最终成果。
        ,value_added_of_hotels_and_catering_services -- 住宿和餐饮业增加值(亿元)。住宿和餐饮业增加值是指按市场价格计算的一个国家(或地区)所有常住单位在一定时期内从事住宿和餐饮业生产活动的最终成果。
        ,value_added_of_financial_intermediation -- 金融业增加值(亿元)。金融业增加值是指按市场价格计算的一个国家(或地区)所有常住单位在一定时期内从事金融业生产活动的最终成果。
        ,value_added_of_real_estate -- 房地产业增加值(亿元)。房地产业增加值是指按市场价格计算的一个国家(或地区)所有常住单位在一定时期内从事房地产业生产活动的最终成果。
        ,value_added_of_others -- 其他行业增加值(亿元)。其他行业增加值是指按市场价格计算的一个国家(或地区)所有常住单位在一定时期内从事其他行业生产活动的最终成果。
        ,per_capital_gross_regional_product -- 人均地区生产总值(元/人)。人均国内生产总值是指国内生产总值的绝对值与该年平均人口的比值,是衡量一个国家或地区每个居民对该国家或地区的经济贡献或创造价值的指标。
        ,region -- 地区,枚举值包括中国大陆的31个省市地区,例如:北京市、浙江省、内蒙古自治区。
        ,year -- 年份,枚举值从2003至2022
FROM    bigdata_public_dataset.life_service.mainland_gross_regional_product
WHERE   year IS NOT NULL
LIMIT   100
;

image

描述生成

节点发布描述生成

Data Studio页面,新建一个MaxCompute节点,在代码编辑器中,输入并选中任意一段可运行的代码,单击页面右侧的调度配置并完成内容填写,单击编辑器上方的发布按钮,进入节点发布功能界面后,单击描述窗口右下方的Copilot图标,等待Copilot返回结果。

预设节点名称ads_ec_ec360_gmv_kpi_overview

image

函数描述生成

Data Studio页面,单击左侧一级菜单栏中的资源管理,打开任意一个已有的MaxCompute函数,或者新建一个MaxCompute函数,进入函数编辑功能页面后,单击描述窗口右下方的Copilot图标,等待Copilot返回结果。

预设函数名称udfjaccardsimilarity

image