全部產品
Search
文件中心

DataWorks:個人開發環境製作MaxCompute鏡像

更新時間:Oct 29, 2025

DataWorks支援在建立個人開發環境的自訂鏡像時,同步產生MaxCompute的自訂鏡像,方便您在DataWorks節點(如PyODPS 3節點、Notebook節點)中使用MaxCompute自訂鏡像。本文將為您介紹在DataWorks構建並使用MaxCompute自訂鏡像。

背景資訊

MaxCompute鏡像管理功能支援您建立自訂鏡像,您可在SQL UDF、PyODPS及MaxFrame開發等情境中直接引用已有鏡像,無需執行繁瑣的資源打包、上傳等流程。在DataWorks,您可以基於個人開發環境,在構建DataWorks鏡像的同時,同步構建MaxCompute鏡像。

前提條件

建立MaxCompute自訂鏡像

準備工作

注意事項

建立MaxCompute自訂鏡像:

  • 鏡像大小:MaxCompute單個鏡像最大規格為10 GB

  • 鏡像數量:MaxCompute單租戶最多可上傳10個鏡像。

使用MaxCompute鏡像:DataWorks基於Python 3.11環境構建MaxCompute鏡像。若要運行通過DataWorks構建的MaxCompute鏡像,請確保您的Python環境為3.11版本。

建立個人開發環境執行個體

進入Data Studio,參照下文使用特定鏡像dataworks-maxcompute:py3.11-ubuntu20.04建立個人開發環境執行個體,以便同步建立MaxCompute自訂鏡像。

  1. 進入Data Studio。

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

    2. 在Data Studio頁面左側導覽列單擊image按鈕,進入資料開發頁面。

  2. 進入個人開發環境建立頁面。單擊頂部個人開發環境·請選擇,按需建立個人開發環境執行個體。

    • 如果您還沒有個人開發環境執行個體,需要您自主建立,單擊前往建立

    • 如果您已有個人開發環境執行個體,則單擊管理執行個體,然後在個人開發環境執行個體列表中,單擊建立執行個體

  3. 配置個人開發環境。在DataWorks中建立MaxCompute自訂鏡像時,個人開發環境需要進行以下配置,其他參數配置可參見建立個人開發環境執行個體

    • 鏡像配置:請選擇dataworks-maxcompute:py3.11-ubuntu20.04

      說明
      • 只有選擇dataworks-maxcompute:py3.11-ubuntu20.04 鏡像,才能製作MaxCompute自訂鏡像。

      • 使用dataworks-maxcompute:py3.11-ubuntu20.04 作為基礎鏡像構建的DataWorks自訂鏡像,可以在DataWorks的Notebook、通用Python及Shell節點中使用MaxFrame作業開發。

    • 網路設定:請選擇ACR執行個體配置的專用網路,以確保後續構建鏡像時,個人開發環境執行個體可正常將鏡像推送至ACR執行個體。

配置鏡像相關環境

請參照以下步驟,在您的個人開發環境執行個體終端中安裝MaxCompute開發需要使用的第三方依賴。本文將以 jieba 為例進行說明。

  1. 單擊Data Studio頁面頂部的個人開發環境·請選擇,單擊進入在建立個人開發環境執行個體中建立的個人開發環境執行個體。

  2. 單擊Data Studio底部工具列左側的image表徵圖,進入終端命令執行框。

  3. 在個人開發環境終端中依次執行以下命令,下載並驗證第三方依賴jieba是否安裝成功。

    ## 安裝三方依賴
    pip install jieba;
    
    ## 查看第三方依賴
    pip show jieba;

儲存自訂鏡像

請按照以下步驟,將個人開發環境製作為DataWorks鏡像,並選擇同步建立MaxCompute鏡像。系統會自動將產生的鏡像上傳至同帳號下的ACR執行個體中。

  1. 進入個人開發環境執行個體管理頁面。

    1. 單擊頂部原個人開發環境·請選擇位置,單擊您所建立的個人開發環境執行個體名稱。

    2. 在彈窗中選擇管理環境,進入個人開發環境執行個體頁面。

  2. 進入製作鏡像頁面。

    1. 在個人開發環境執行個體頁找到您所建立的個人開發環境執行個體。

    2. 單擊執行個體右側操作欄中的製作鏡像

  3. 請參照以下內容配置鏡像,配置完成後點擊確認

    參數

    說明

    鏡像名稱

    自訂DataWorks鏡像名稱,若鏡像同步至MaxCompute,此處定義的名稱即為MaxCompute鏡像名稱。(例如:image_jieba)。

    鏡像執行個體

    請選擇標準版及以上版本的ACR執行個體,建立ACR執行個體詳情請參見建立企業版執行個體

    說明

    標準版及以上版本的ACR執行個體可用於構建MaxCompute自訂鏡像。

    命名空間

    請選擇ACR執行個體的命名空間,建立詳情請參見建立命名空間

    鏡像倉庫

    請選擇ACR執行個體的鏡像倉庫,建立詳情請參見建立鏡像倉庫

    鏡像版本

    自訂鏡像版本。

    同步至MaxCompute

    本案例請選擇。選擇同步至MaxCompute後,鏡像將在DataWorks鏡像發布時,同步構建為MaxCompute鏡像。

    說明

    選項與您選擇的鏡像執行個體有關,執行個體規格標準版及以上版本的ACR鏡像執行個體是可選擇的,其他預設不可選。

    任務類型

    請選擇當前建立的DataWorks鏡像可用的任務類型。本樣本可選擇將鏡像用於Notebook開發。

    • Notebook

    • Python

    • Shell

  4. 確認鏡像儲存狀態。

    您可在鏡像執行個體列表頁面,找到上述個人開發環境的鏡像列,查看鏡像儲存狀態。

  5. 單擊確認,進行製作鏡像。

  6. 單擊個人開發環境執行個體右側的image表徵圖,勾選展示鏡像列。

  7. 等待鏡像製作完成。滑鼠懸浮到儲存成功右側的image表徵圖上,在彈窗中單擊這裡,進入鏡像管理頁。

    image

發布自訂鏡像

待個人開發環境執行個體製作的鏡像在Data Studio儲存成功後,請按照以下步驟,完成自訂鏡像發佈動作,此操作會將通過ACR鏡像執行個體建立的鏡像同步至DataWorks和MaxCompute,產生DataWorks自訂鏡像和MaxCompute自訂鏡像。

  1. 進入DataWorks工作空間列表頁,在頂部切換至目標地區。

  2. 在左側導覽列中找到鏡像管理 > 自訂鏡像頁簽,對目標鏡像進行測試,待目標鏡像測試成功後,對目標鏡像進行發布

    說明
    • 測試自訂鏡像時,測試資源群組請選擇Serverless資源群組。

    • 測試發布選擇的Serverless資源群組綁定的VPC需與阿里雲鏡像Container Service中配置的VPC一致。

    • 如果您配置的自訂鏡像是從公網擷取第三方包,且長時間測試不通過,請檢查測試資源群組綁定的VPC是否具備公網訪問能力,為VPC配置公網,請參見使用公網NAT GatewaySNAT功能訪問互連網

  3. 重新整理頁面,確認鏡像列表中您所發布的鏡像發布狀態變為發行

  4. 在目標鏡像操作列單擊image > 修改歸屬工作空間,為自訂鏡像綁定歸屬工作空間。

確認MaxCompute鏡像狀態

DataWorks鏡像發布完成後,會同步建立MaxCompute鏡像,待DataWorks控制台鏡像管理 > 自訂鏡像頁簽中的鏡像狀態變為發行狀態後,您可前往MaxCompute控制台,根據添加自訂鏡像至MaxCompute步驟查看您所建立成功的MaxCompute自訂鏡像。

使用MaxCompute自訂鏡像

注意事項

  • 使用MaxFrame進行開發需要鏡像中有MaxFrame服務。若要在DataWorks運行MaxCompute自訂鏡像,要求該鏡像是基於Python 3.11環境構建。

  • 在DataWorks使用MaxCompute自訂鏡像進行MaxFrame作業開發,請確保任務運行在有MaxFrame運行環境的DataWorks鏡像中。具體如下:

    • Notebook節點:請選擇官方鏡像dataworks-notebook:py3.11-ubuntu22.04,或基於該官方鏡像或dataworks-maxcompute:py3.11-ubuntu20.04鏡像構建的DataWorks自訂鏡像。

    • PyODPS 3節點:請選擇官方鏡像dataworks_pyodps_py311_task_pod,或基於該官方鏡像構建的DataWorks自訂鏡像。

    • Python節點:請選擇基於dataworks-maxcompute:py3.11-ubuntu20.04鏡像建立帶有MaxFrame服務的個人開發環境執行個體,並儲存為支援Python任務類型的DataWorks自訂鏡像

    • 其他節點:請確保DataWorks自訂鏡像中存在MaxFrame運行環境,並且構建環境為Python 3.11

進入資料開發

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

  2. 在Data Studio頁面左側導覽列單擊image按鈕,進入資料開發頁面。

在Notebook節點使用

以下以Notebook節點為例,說明如何在MaxFrame中使用MaxCompute自訂鏡像,本樣本以使用MaxCompute自訂鏡像中的 jieba 包為例進行說明。具體操作如下:

  1. 建立Notebook節點。

    1. 單擊頂部個人開發環境·請選擇,選擇已建立的個人開發環境執行個體。

    2. 單擊專案目錄右側的image,選擇建立節點 > Notebook,進入建立節點對話方塊。

    3. 建立節點對話方塊中輸入節點名稱,單擊確認,進入節點編輯頁。

  2. 編輯Notebook節點代碼。

    # -*- coding: utf-8 -*-
    from odps import ODPS
    from maxframe.session import new_session
    import maxframe.dataframe as md  # 確保正確匯入maxframe.dataframe模組
    from maxframe import config
    
    # 準備資料集
    test_data = [
        "離離原上草"
    ]
    # 定義函數,使用MaxCompute自訂鏡像中的jieba包處理資料:
    # 使用MaxCompute自訂鏡像
    def image_test():
        config.options.sql.settings = {
            "odps.session.image": "image_jieba"  # 本樣本MaxCompute鏡像名稱為image_jieba,您可前往maxCompute控制台查看鏡像名稱。
        }
        def process(row):
            import jieba
            result = jieba.cut(row, cut_all=False)
            return "/".join(result)
        # 建立MaxFrame串連
        odps = %odps
        session = new_session(odps) 
        # 列印logview以便查看執行詳情
        logview = session.get_logview_address()
        print("logview:", logview)
        # 建立MaxFrame DataFrame
        # 將本地測試資料(如 ["離離原上草"])封裝為MaxFrame的DataFrame對象。
        df = md.DataFrame(test_data, columns=["raw_text"])
        # 應用分詞函數處理DataFrame對象資料
        df["processed_text"] = df["raw_text"].map(process, dtype='object')
        print("列印",df.execute().fetch())
    image_test()
    print("Data processing completed!")
  3. 單擊節點編輯頁左側的image表徵圖,在彈框中選擇Python3.11版本的核心,運行節點並查看日誌資訊。

在PyODPS 3節點使用

以下以PyODPS 3節點為例,說明如何在MaxFrame中使用MaxCompute自訂鏡像,本樣本以使用MaxCompute自訂鏡像中的 jieba 包為例進行說明。具體操作如下:

  1. 建立PyODPS 3節點。

    1. 單擊專案目錄右側的image,選擇建立節點 > MaxCompute > PyODPS 3節點,進入建立節點對話方塊。

    2. 建立節點對話方塊中輸入節點名稱,單擊確認,進入節點編輯頁。

  2. 編輯PyODPS 3節點代碼。

    # -*- coding: utf-8 -*-
    from odps import ODPS, options
    from odps.df import DataFrame
    import pandas as pd
    # 表資料準備
    options.sql.settings = {"odps.isolation.session.enable": True}
    # 建立測試表
    table = o.create_table('jieba_work_tb', 'col string', if_not_exists=True)
    # 添加執行個體資料
    instance = o.run_sql("insert into table jieba_work_tb values ('離離原上草')")
    instance.wait_for_success()
    # 定義函數,使用MaxCompute自訂鏡像中的jieba包處理資料:
    def image_test():
        def process(row):
            import jieba
            result = jieba.cut(row, cut_all=False)
            return "/".join(result)
        #  將表封裝為DataFrame對象。
        df = o.get_table("jieba_work_tb").to_df()
        # 應用分詞函數處理DataFrame對象資料
        df = df.col.map(process).execute(image='image_jieba') # 本樣本MaxCompute鏡像名稱為image_jieba,您可前往maxCompute控制台查看鏡像名稱。
        print("列印",df)
    image_test()
    print("Data processing completed!")
  3. 配置PyODPS 3節點。

    單擊節點編輯頁面右側的調試配置,參考以下參數資訊配置節點內容。

    參數

    說明

    計算資源

    選擇您所綁定的MaxCompute計算資源。

    資源群組

    選擇您所綁定的Serverless資源群組。

    鏡像

    選擇dataworks_pyodps_py311_task_pod:prod_20241210

  4. 單擊節點編輯頁上方工具列中的image表徵圖,運行節點。