全部產品
Search
文件中心

DataWorks:MaxCompute資源與函數

更新時間:Dec 09, 2025

Data Studio支援管理MaxCompute專案資源,包括從本地或OSS檔案建立資源,並且可以將這些建立的資源註冊為函數,以便在資料開發節點中使用。本文將詳細介紹如何通過資源管理建立MaxCompute不同類型的資源和函數的具體操作事項。

前提條件

  • 綁定MaxCompute計算資源

  • 已完成資源檔的開發,檔案可從本地上傳或從OSSObject Storage Service中擷取。當通過上傳OSS檔案方式建立資源時,需滿足以下條件。

進入資源管理

  1. 進入DataWorks工作空間列表頁,在頂部切換至目標地區,找到目標工作空間,單擊操作列的快速進入 > Data Studio,進入Data Studio。

  2. 在左側導覽列單擊資源管理按鈕image,進入資源管理頁面。

  3. 資源管理頁面,單擊image按鈕進行建立資源或函數。您也可以先建立目錄,規劃資源管理目錄後,再在相應目錄上右鍵,選擇建立,選擇需要建立的資源或函數類型。

建立並管理資源

資源說明

資源是MaxCompute實現UDFMapReduce功能的基礎。在Data Studio中,您可以通過可視化方式上傳本地或OSS儲存的資源。這些資源可以在使用者自訂函數(UDF)及MapReduce的運行過程中讀取和使用。支援建立的MaxCompute資源類型如下。

重要

通過DataWorks上傳資源至MaxCompute,會產生MaxCompute儲存費用

資源類型

描述

Python

存放編寫的Python代碼,用於註冊Python UDF函數。尾碼為.py

JAR

編譯好的Java JAR包,用於運行Java程式。尾碼為.jar

Archive

僅支援將.zip.tgz.tar.gz.tar.jar等壓縮檔上傳為資源,通過資源名稱的尾碼區分壓縮類型。

File

建立的資源類型為File類型時,可上傳任意檔案,實際使用時請以各引擎支援情況為準。

使用限制

上傳資源需符合以下限制:

  • 資源大小

    • 線上編輯:Python類型最大支援10MB;File類型最大支援500KB

    • 上傳本地檔案:最大支援上傳500MB的資源。

    • 上傳OSS檔案:最大支援上傳500MB的資源。

  • 資源發布:若您使用的是標準模式的工作空間,則需將資源發布至生產環境方可生效。

    說明

    開發環境和生產環境的資料來源資訊可能存在差異,查詢對應環境的表、資源等操作前,請先確認相應環境的資料來源資訊。

  • 資源管理:DataWorks僅支援查看與管理通過DataWorks上傳的資源。

建立資源

MaxCompute資源支援本地上傳和OSS上傳,建立好的資源可直接在資料開發中引用,也可以建立為函數使用。

  1. 在資源管理頁面,建立資源開啟建立資源和函數彈窗時,配置資源的類型、儲存的路徑以及資源名稱

  2. 上傳OSS或本地檔案作為來源,以下為上傳資源的時的關鍵參數:

    配置項

    配置說明

    檔案來源

    目標檔案的來源,包括本地OSS兩種來源。

    檔案內容

    • 如果您選擇本地,在檔案內容中單擊點擊上傳即可上傳本地檔案。

    • 如果您選擇OSS,在檔案內容下拉框中選擇對應的OSS檔案。

    資料來源

    選擇上傳的MaxCompute資源所屬的資料來源。

  3. 在上方工具列對資源儲存發布,只有發布後的資源才能在資料開發中使用。

使用資源

完成資源建立後,在編輯資料開發節點時,在左側導覽列單擊資源管理,然後找到目標資源或函數後,右鍵選擇引用資源。引用資源成功後,會顯示##@resource_reference{"資源名稱"}格式的代碼。

說明

例如,PyODPS 3節點顯示的樣式為##@resource_reference{"example.py"}。各類型節點顯示格式存在差異,請以實際介面為準。

除了直接使用資源外,還可將資源建立為函數,再在開發節點中使用。

管理資源

DataWorks僅支援查看與管理通過DataWorks可視化方式上傳的資源,在資源管理頁面,可通過單擊目標資源,對資源執行相關的管理操作。

  • 查看歷史版本:您可查看、對比發行的資源版本,擷取不同版本的資源變更情況。

    說明

    版本對比時,至少需選擇兩個版本進行比對。

  • 刪除資源:刪除操作僅是刪除開發環境對應專案中的該資源。若需刪除生產環境下該資源,則需進行任務發布,將資源刪除操作發布至生產環境,發布成功後,生產環境該資源才會同步刪除。詳情請參見發布任務

  • 查看其他資源。

    MaxCompute中除了從DataWorks上傳的資源外,還有通過其他途徑上傳的資源,可通過以下方式進行查看。

    • 通過資料目錄查看MaxCompute專案下的所有資源。

      在資料目錄中添加MaxCompute專案後,即可在資料目錄中開啟相應的MaxCompute目錄,並在資來源目錄下查看當前專案內的所有資源。

    • 通過MaxCompute SQL節點查看MaxCompute專案中的其他資源。

      • 查看當前專案下的所有資源。在資料開發中建立MaxCompute SQL指令碼執行該命令時,預設訪問開發環境綁定的MaxCompute計算資源。

        list resources;
      • 查看指定專案下的所有資源。

        use MaxCompute專案名稱;
        list resources;

      更多命令操作,詳情請參見資源操作

建立並管理函數

在建立函數之前,請確保已建立資源

說明

建立MaxCompute資源時,可參考UDF開發(Java)UDF開發(Python3)準備MaxCompute資源檔。

函數說明

在Data Studio資源與函數管理中,支援將資源註冊為函數。在資料開發或SQL查詢中,您可以使用通過建立函數,直接將已上傳發布的資源建立為函數,此外還支援通過JAVAPYTHON2PYTHON3建立嵌入式函數,或直接使用MaxCompute內建函數

建立函數

  1. 在資源管理頁面,建立函數開啟建立資源和函數彈窗時,配置下拉配置函數的類型、儲存的路徑以及函數名稱

  2. 建立函數資源,配置函數的相關資訊。

    配置MaxCompute函數前,需確保已將MaxCompute專案在DataWorks內註冊為了計算資源,並已上傳MaxCompute類型的資源,以下為MaxCompute函數關鍵配置說明。

    參數

    描述

    函數類型

    選擇函數類型,包括MATH(數學運算函數)、AGGREGATE(彙總函式)、STRING(字串處理函數)、DATE(日期函數)、ANALYTIC(視窗函數)和OTHER(其他函數)。

    類名

    UDF函數的類名,格式為資源名.類名。其中,資源名可以為Java包名稱或Python資源名稱。

    DataWorks建立自訂函數時支援使用JAR包及Python兩種類型的MaxCompute資源。不同類型資源的類名配置如下

    • 資源類型為JAR時,配置的類名格式為Java包名稱.實際類名,您可以在IntelliJ IDEA中通過Copy Reference語句擷取。

      例如,com.aliyun.odps.examples.udf為Java包的名稱,UDAFExample為實際類名,則類名參數配置為com.aliyun.odps.examples.udf.UDAFExample

    • 資源類型為Python時,配置的類名格式為Python資源名稱.實際類名

      例如,LcLognormDist_sh為Python資源名稱,LcLognormDist_sh為實際類名,則類名參數配置為LcLognormDist_sh.LcLognormDist_sh

    說明
    • 填寫資源名稱時,無需添加.jar.py尾碼。

    • 資源需要提交並發布後才可以使用。

    類型

    支援選擇資源函數嵌入式函數

    • 選擇資源函數時,配置資源清單即可。

    • 選擇嵌入式函數時,除了選擇資源清單外,還需要配置語言(支援JAVAPYTHON2PYTHON3)和代碼

    資源清單

    選擇註冊函數所需使用的資源。

    • 可視化模式:僅支援選擇已上傳或添加至DataWorks的資源。

    • 指令碼模式:支援輸入相應資料來源中的所有資源。如果UDF中調用了多個資源,則多個資源使用英文逗號(,)分隔。

    說明
    • 無需填寫已添加的資源的路徑。

    • DataWorks不支援可視化上傳的資源(如表資源),或已經通過其他方式上傳至MaxCompute不在DataWorks可視化管理的資源,都可以用指令碼模式手動填寫。

    命令格式

    該UDF的具體使用方法樣本。

  3. 在上方工具列對函數儲存發布,只有發布後的函數才能在資料開發中使用。

使用函數

使用自訂函數

函數建立完成並發布後,在資料開發或SQL查詢中,可直接引用建立的函數。

  • 在編輯資料開發節點時,在左側導覽列單擊資源管理,然後找到目標資源或函數後,右鍵選擇引用函數

    引用函數成功後,在當前節點編輯頁面快速產生自訂函數名稱,例如:example_function()

  • 在編輯SQL查詢時,可直接使用已建立的函數。

SELECT example_function(column_name) FROM table;

使用內建函數

DataWorks支援兩種函數:自訂函數和MaxCompute系統內建函數。您可按類型查看內建函數,也可以按字母排序查看內建函數

管理函數

在資源管理頁面,可通過單擊目標函數,對函數執行相關的管理操作。

  • 查看歷史版本:單擊函數編輯頁面右側的版本按鈕,您可查看、對比已儲存或已提交的函數版本,擷取不同版本的資源變更情況。

    說明

    版本對比時,至少需選擇兩個版本進行比對。

  • 刪除資源:滑鼠右鍵單擊目標函數,選擇刪除按鈕,刪除函數。

    若需刪除生產環境下該函數,則需進行任務發布,將資源刪除操作發布至生產環境,發布成功後,生產環境該函數才會同步刪除。詳情請參見發布任務

查看自訂函數列表

//查看當前DataWorks綁定的MaxCompute計算資源專案下的函數。
SHOW FUNCTIONS;

查看自訂函數詳情

  • 可以使用DESCRIBE或簡寫的DESC命令,後跟函數名來查看自訂函數的詳細資料。

    //使用簡寫形式查看自訂函數的詳細資料
    DESC FUNCTION <function_name>;
  • 在DataWorks中,如果您在商務程序中需要的處理邏輯無法通過現有函數實現,可以編寫MaxCompute自訂函數,並將相應的資源(如JAR包、Python檔案等)上傳和關聯,以此來管理和擴充您的資料處理功能。

常見問題

Q:通過DataWorks上傳的資源並定義為UDF函數後,除了在資料開發中供ODPS SQL節點使用外,是否可以在資料分析SQL查詢中使用?

A:可以在資料分析SQL查詢中使用,通過DataWorks註冊的UDF函數,實際是儲存在MaxCompute專案中,因此,不僅可以在MaxCompute SQL節點中使用,還可以在資料分析SQL查詢(舊版)中使用。