全部產品
Search
文件中心

:智能編程助手

更新時間:Aug 02, 2025

在本實驗中,您將體驗到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預設模型、Qwen3-235B-A22B、DeepSeek-R1-0528或Qwen3-Coder大模型來完成相關Copilot產品操作。藉助DeepSeek-R1的深度推理能力,DataWorks Copilot可以協助您通過自然語言互動完成更為複雜的SQL代碼產生、最佳化、測試等操作,顯著提升ETL開發和資料分析效率。

注意事項

  • 當前DataWorks Copilot產品存在公測地區限制和版本限制,詳情請參見公測說明

  • DataWorks Copilot支援的語言類型包含SQL及Python,本實驗以SQL操作為主。

  • DataWorks Copilot不區分引擎,支援所有代碼類節點,本實驗以MaxCompute節點為樣本。

環境準備

實驗步驟

說明

以下實驗不分先後次序,您可按需體驗。

NL2Code

DataWorks Copilot支援根據自然語言返回SQL代碼。

  1. Data Studio頁面,單擊專案目錄右側的image,單擊串聯功能表中的“MaxCompute SQL進入MaxCompute SQL節點編輯功能介面。

    image

  2. 在進入工作流程編輯功能介面前,請先輸入名稱節點,鍵盤敲擊斷行符號鍵,等待即可。

    預設節點名稱ads_ec_ec360_gmv_kpi_overview

    image

  3. 代碼編輯器中,單擊讓DataWorks Copilot執行某些操作,進入Copilot Chat功能介面。在Copilot Chat功能介面中輸入指令,單擊發送按鈕,等待Copilot返回結果。

    預設指令基於dwd_ec_trd_create_ord_di表,統計2024年9月1日至2024年9月18日每個SPU的銷售額、銷量、SKU數量、買家數量、賣家數量

    image

    image

代碼補全

DataWorks Copilot支援在編寫代碼過程中為您進行代碼補全。

Data Studio頁面,建立一個MaxCompute節點,在代碼編輯器中,單擊Copilot,進入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
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