全部產品
Search
文件中心

MaxCompute:OSS掛載功能(邀測)

更新時間:Jan 24, 2026

MaxFrame新增OSS檔案掛載能力,實現OSS Bucket與MaxCompute本地檔案系統的無縫映射。通過MaxFrame聲明式配置可以定義掛載路徑,結合類POSIX 介面直接操作OSS資料,無需依賴傳統SDK開發模式,顯著降低開發複雜度。

適用情境

  • 大規模資料處理:適用於需頻繁互動OSS與MaxCompute的離線計算任務。

  • 資料預先處理:快速讀取OSS中的未經處理資料,清洗、轉換後寫入MaxCompute。

  • 混合儲存架構:在保留OSS儲存資料的同時,實現與MaxCompute的高效協同。

  • 版本限制:要求MaxFrame SDK為2.4.0及以上版本。

核心特性

  • 安全鑒權

    支援基於RAM Role方式鑒權,避免暴露長期AK/SK,提升資料訪問安全性。

  • 無縫整合

    • 將OSS Bucket映射為MaxCompute本地檔案系統路徑,支援直接讀寫操作。

    • 相容類POSIX介面(如 openreadwrite),簡化檔案管理流程。

  • 聲明式配置

    通過MaxFrame聲明式配置:@with_fs_mount定義掛載路徑,無需編寫複雜代碼即可完成資料對應。

  • 開發效率提升

    無需SDK編碼,開發人員可直接通過API操作OSS資料,縮短開發週期。

核心參數

path - 遠程儲存地址定義

  • 格式規範:scheme://<endpoint>/<bucket>/<object_prefix>

    • scheme:協議類型(OSS)。

    • endpoint:儲存服務訪問端點。

    • bucket:儲存桶名稱。

    • object_prefix:儲存桶內的對象首碼路徑。

  • 使用樣本:

    path = "oss://oss-cn-shanghai-internal.aliyuncs.com/maxframe-test/oss_data"

mount_path - MaxCompute 本地掛載點

  • 參數說明:mount_path用於指定遠程儲存系統的MaxCompute本地訪問路徑,MaxFrame會自動建立該目錄並掛載檔案系統。

  • 配置要求:

    • 許可權要求:運行使用者需具備目錄讀寫權限。

    • 唯一性:每個掛載點是獨立的,避免路徑衝突。

    • 生命週期:裝飾器執行結束後自動卸載(支援異常安全卸載)。

  • 使用樣本:

    mount_path = "/mnt/oss_data"  # MaxCompute本地掛載路徑

storage_options - 認證與配置參數

使用RAM Role方式認證

  1. 登入RAM控制台

  2. 在左側導覽列選擇身份管理 > 角色

  3. 基礎資訊地區,可以擷取ARN資訊。

  4. 樣本如下:

    storage_options = {
      "role_arn": "acs:ram::xxxxxxxx:role/MaxFrameAccessRole"
    }

    RAM Policy樣本,最小許可權原則(唯讀訪問):

    {
        "Statement": [
            {
                "Action": "oss:GetObject",
                "Effect": "Allow",
                "Resource": "acs:oss:*:*:maxframe-***-poc/oss_data/*"
            }
        ],
        "Version": "1"
    }

功能樣本

如下代碼為功能使用樣本的程式碼片段,完整功能使用代碼,可參考OSS掛載及使用實踐

OSS資料處理

from maxframe.udf import with_fs_mount

@with_running_options(engine="dpe", cpu=2, memory=8)
@with_fs_mount(
    path="oss://oss-cn-shanghai-internal.aliyuncs.com/bigdata-bucket/preprocessed/",
    mount_path="/mnt/data",
    storage_options={"role_arn": "acs:ram::123456:role/DataAccess"}
)
def etl_job():
    df = pd.read_csv("/mnt/data/2025-*.csv")
    # 分散式運算...

OSS模型檔案載入

from maxframe.udf import with_fs_mount

@with_running_options(engine="dpe", cpu=2, memory=8)
@with_fs_mount(
    path="oss://oss-cn-shanghai-internal.aliyuncs.com/model-registry/model_path",
    mount_path="/mnt/model_path",
    storage_options={"role_arn": "acs:ram::123456:role/ModelAccess"}
)
def resume_training():
    model = load_model("/mnt/model_path/model.pkl)
    # 模型訓練...