Data Studio支援管理MaxCompute專案資源,包括從本地或OSS檔案建立資源,並且可以將這些建立的資源註冊為函數,以便在資料開發節點中使用。本文將詳細介紹如何通過資源管理建立MaxCompute不同類型的資源和函數的具體操作事項。
前提條件
已完成資源檔的開發,檔案可從本地上傳或從OSSObject Storage Service中擷取。當通過上傳OSS檔案方式建立資源時,需滿足以下條件。
已開通OSS並建立Bucket,並將待上傳資源檔儲存至OSS Bucket中,詳情請參見:建立儲存空間和簡單上傳。
說明支援上傳的資源檔可參見資源說明。
已為操作上傳檔案的阿里雲帳號授予可訪問目標Bucket的許可權。為避免許可權限制,上傳檔案前需提前為相關操作帳號進行授權。
進入資源管理
進入DataWorks工作空間列表頁,在頂部切換至目標地區,找到目標工作空間,單擊操作列的,進入Data Studio。
在左側導覽列單擊資源管理按鈕
,進入資源管理頁面。在資源管理頁面,單擊
按鈕進行建立資源或函數。您也可以先建立目錄,規劃資源管理目錄後,再在相應目錄上右鍵,選擇建立,選擇需要建立的資源或函數類型。
建立並管理資源
資源說明
資源是MaxCompute實現UDF或MapReduce功能的基礎。在Data Studio中,您可以通過可視化方式上傳本地或OSS儲存的資源。這些資源可以在使用者自訂函數(UDF)及MapReduce的運行過程中讀取和使用。支援建立的MaxCompute資源類型如下。
通過DataWorks上傳資源至MaxCompute,會產生MaxCompute儲存費用。
資源類型 | 描述 |
Python | 存放編寫的Python代碼,用於註冊Python UDF函數。尾碼為 |
JAR | 編譯好的Java JAR包,用於運行Java程式。尾碼為 |
Archive | 僅支援將 |
File | 建立的資源類型為 |
使用限制
上傳資源需符合以下限制:
資源大小:
線上編輯:Python類型最大支援10MB;File類型最大支援500KB。
上傳本地檔案:最大支援上傳500MB的資源。
上傳OSS檔案:最大支援上傳500MB的資源。
資源發布:若您使用的是標準模式的工作空間,則需將資源發布至生產環境方可生效。
說明開發環境和生產環境的資料來源資訊可能存在差異,查詢對應環境的表、資源等操作前,請先確認相應環境的資料來源資訊。
資源管理:DataWorks僅支援查看與管理通過DataWorks上傳的資源。
建立資源
MaxCompute資源支援本地上傳和OSS上傳,建立好的資源可直接在資料開發中引用,也可以建立為函數使用。
在資源管理頁面,建立資源開啟建立資源和函數彈窗時,配置資源的類型、儲存的路徑以及資源名稱。
上傳OSS或本地檔案作為來源,以下為上傳資源的時的關鍵參數:
配置項
配置說明
檔案來源
目標檔案的來源,包括本地和OSS兩種來源。
檔案內容
如果您選擇本地,在檔案內容中單擊點擊上傳即可上傳本地檔案。
如果您選擇OSS,在檔案內容下拉框中選擇對應的OSS檔案。
資料來源
選擇上傳的MaxCompute資源所屬的資料來源。
在上方工具列對資源儲存並發布,只有發布後的資源才能在資料開發中使用。
使用資源
完成資源建立後,在編輯資料開發節點時,在左側導覽列單擊資源管理,然後找到目標資源或函數後,右鍵選擇引用資源。引用資源成功後,會顯示##@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查詢中,您可以使用通過建立函數,直接將已上傳發布的資源建立為函數,此外還支援通過JAVA、PYTHON2或PYTHON3建立嵌入式函數,或直接使用MaxCompute內建函數。
建立函數
在資源管理頁面,建立函數開啟建立資源和函數彈窗時,配置下拉配置函數的類型、儲存的路徑以及函數名稱。
建立函數資源,配置函數的相關資訊。
配置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尾碼。資源需要提交並發布後才可以使用。
類型
支援選擇資源函數或嵌入式函數:
選擇資源函數時,配置資源清單即可。
選擇嵌入式函數時,除了選擇資源清單外,還需要配置語言(支援
JAVA、PYTHON2和PYTHON3)和代碼。
資源清單
選擇註冊函數所需使用的資源。
可視化模式:僅支援選擇已上傳或添加至DataWorks的資源。
指令碼模式:支援輸入相應資料來源中的所有資源。如果UDF中調用了多個資源,則多個資源使用英文逗號(,)分隔。
說明無需填寫已添加的資源的路徑。
DataWorks不支援可視化上傳的資源(如表資源),或已經通過其他方式上傳至MaxCompute不在DataWorks可視化管理的資源,都可以用指令碼模式手動填寫。
命令格式
該UDF的具體使用方法樣本。
在上方工具列對函數儲存並發布,只有發布後的函數才能在資料開發中使用。
使用函數
使用自訂函數
函數建立完成並發布後,在資料開發或SQL查詢中,可直接引用建立的函數。
在編輯資料開發節點時,在左側導覽列單擊資源管理,然後找到目標資源或函數後,右鍵選擇引用函數。
引用函數成功後,在當前節點編輯頁面快速產生自訂函數名稱,例如:
example_function()。在編輯SQL查詢時,可直接使用已建立的函數。
SELECT example_function(column_name) FROM table;使用內建函數
DataWorks支援兩種函數:自訂函數和MaxCompute系統內建函數。您可按類型查看內建函數,也可以按字母排序查看內建函數。
注意事項:使用內建函數的注意事項請參見注意事項。
使用限制:內建函數的使用限制請參見JSON函數的使用限制和字串函數的使用限制。
查看內建函數,可通過以下三種方式進行查看:
按類型查看內建函數。
在MaxCompute SQL節點中使用以下命令查看內建函數。
show builtin functions [<function_name>]; --<function_name>為指定的內建函數名稱。說明<function_name>為預留位置,實際操作時可指定為內建函數名稱。如果使用MaxCompute用戶端(odpscmd)執行
show builtin functions;命令,則需要odpscmd版本為0.43.0及以上版本。
內建函數的典型案例請參見:
如果您想快速定位內建函數使用過程中遇到的問題,請參考:
管理函數
在資源管理頁面,可通過單擊目標函數,對函數執行相關的管理操作。
查看歷史版本:單擊函數編輯頁面右側的版本按鈕,您可查看、對比已儲存或已提交的函數版本,擷取不同版本的資源變更情況。
說明版本對比時,至少需選擇兩個版本進行比對。
刪除資源:滑鼠右鍵單擊目標函數,選擇刪除按鈕,刪除函數。
若需刪除生產環境下該函數,則需進行任務發布,將資源刪除操作發布至生產環境,發布成功後,生產環境該函數才會同步刪除。詳情請參見發布任務。
查看自訂函數列表
//查看當前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查詢(舊版)中使用。