博客 / 詳情

返回

基於DataWorks Notebook+MaxCompute MaxFrame一站式構建AI數據處理Pipeline

在大模型與 AI 應用快速落地的今天,企業對“數據準備 → 數據處理 → 模型訓練”的端到端效率提出了更高要求。阿里雲數據開發治理平台 DataWorks 聯合雲原生大數據計算服務 MaxCompute,為您提供一套開箱即用、安全合規、彈性可擴展的 AI 數據開發環境,特別適合需要處理 TB/PB 級結構化、半/非結構化數據的 AI 工程師、數據科學家與算法團隊。

本文將帶您快速瞭解如何基於阿里雲兩大核心產品——DataWorks(大數據開發與治理平台)、MaxCompute(雲原生大數據計算服務)以及MaxFrame(分佈式Python計算框架)—— 高效搭建一個支持 Notebook 交互式開發、任務調度與大規模並行計算的一體化 AI 數據處理環境。

為什麼選擇這套組合?

image.png

優勢總結:

  • 無需自建集羣:全託管服務,分鐘級開通
  • 開發體驗友好:Jupyter Notebook 風格,支持 Magic Command 快速連接計算資源
  • 安全合規:天然集成 RAM 權限體系、VPC 網絡隔離、敏感信息加密
  • 成本可控:按量付費 + 包年包月,適合測試與生產混合場景

環境搭建四步走(核心流程)

雖然底層涉及多個服務聯動,但對用户而言,只需完成以下四個關鍵步驟,即可進入開發狀態:

第一步:開通 MaxCompute 項目

作為計算與存儲的核心,MaxCompute 項目是所有數據作業的資源底座。

  • 選擇與業務一致的地域(如華東2-上海)
  • 推薦使用按量付費模式(新用户可享受免費額度)
  • 項目名稱建議包含業務標識(如 ai_dedup_01),便於後續管理

第二步:創建 DataWorks 工作空間

DataWorks 提供從開發到運維的完整工具鏈。

  • 選擇基礎版即可滿足 Notebook 開發需求(免費)
  • 創建通用型資源組(按量付費),並綁定VPC網絡(若需訪問 OSS、PAI 等內網服務)
  • 指定空間管理員,並添加團隊成員(支持 RAM 子賬號)
    建議開啓“新版數據開發(Data Studio)”,獲得更流暢的 Notebook 體驗。

第三步:綁定計算資源

將 MaxCompute 項目“綁定”到 DataWorks 工作空間,實現開發與計算的打通。

  • 在工作空間管理頁中,一鍵綁定已創建的 MaxCompute 項目
  • 選擇合適的資源組(用於任務調度與 Notebook 執行)
  • 測試連通性,確保權限與網絡配置正確
    安全提示:建議使用“阿里雲主賬號”作為默認執行身份,避免權限不足問題。

第四步:啓動個人開發環境

這是您編寫代碼的“雲端工作站”。

  • 在 Data Studio 中新建一個個人開發環境實例
  • 選擇 CPU 規格(如 4 vCPU / 16 GiB)和預置鏡像(如 dataworks-maxcompute:py3.11-ubuntu20.04:py3.11-ubuntu20.04-202504-1)
  • 實例啓動後,即可在 Notebook 中直接連通 MaxFrame 進行分佈式計算
    注意:實例按CU*時長計費,不使用時請手動停止,避免產生額外費用。

開始開發:用 MaxFrame 處理海量數據

一切就緒後,您可以在 Notebook 中像寫 Pandas 一樣處理億級數據:


import maxframe.dataframe as md
import pyarrow as pa
import pandas as pd
from maxframe.lib.dtypes_extension import dict_

# 初始化 MaxFrame 會話(通過 Magic Command 自動連接 MaxCompute)
mf_session = %maxframe

# 構造 DataFrame(實際數據可來自 MaxCompute 表)
col_a = pd.Series(
    data=[[("k1", 1), ("k2", 2)], [("k1", 3)], None],
    index=[1, 2, 3],
    dtype=dict_(pa.string(), pa.int64()),
)
col_b = pd.Series(
    data=["A", "B", "C"],
    index=[1, 2, 3],
)
df = md.DataFrame({"A": col_a, "B": col_b})
df.execute()

# 自定義函數
def custom_set_item(df):
    for name, value in df["A"].items():
        if value is not None:
            df["A"][name]["x"] = 100
    return df

# 調用 apply_chunk 執行分佈式計算
result_df = df.mf.apply_chunk(
    custom_set_item,
    output_type="dataframe",
    dtypes=df.dtypes.copy(),
    batch_rows=2,
    skip_infer=True,
    index=df.index,
).execute().fetch()

print(result_df)

亮點功能:

  • 使用 %maxframe Magic Command,無需明文 AccessKey,快捷連通目標計算資源
  • 輸出中包含 Logview 鏈接,一鍵查看作業 DAG、耗時、失敗原因
  • 支持將結果寫回 MaxCompute 表或導出至 OSS,無縫銜接下游模型訓練

最佳實踐建議

為了讓您的開發更高效、更穩定,推薦關注以下幾點:

1. 善用 Logview 2.0

每次執行都會生成可視化作業追蹤鏈接,幫助快速定位性能瓶頸或錯誤根源。

2. 合理配置資源配額

通過設置 options.session.quota_name 指定後付費/預付費 Quota,按業務需求靈活選擇。

3.敏感信息統一管理

在 DataWorks 工作空間參數中配置 AK/SK 或數據庫密碼,代碼中通過 ${workspace.工作空間參數名} 引用,杜絕明文泄露。

4. 利用數據地圖做元數據治理

DataWorks 自動同步 MaxCompute 表結構,支持血緣分析、表預覽、生命週期管理,提升團隊協作效率。

常見問題快速排查

  • Q:Notebook 中查不到 MaxCompute 表?
    A:確認 MaxCompute 項目已綁定到當前 DataWorks 工作空間,並檢查賬號是否有讀權限;可在“數據地圖”中手動刷新元數據。
  • Q:無法讀寫 OSS 數據?
    A:確保 RAM 用户擁有對應 Bucket 的讀寫權限,且個人開發環境實例(開發環境)和通用型資源組(生產環境)與 OSS 在同一 VPC 內(或已配置公網訪問)。

下一步行動

現在,您已經擁有了一個安全、彈性、高性能的 AI 數據處理平台。無論是進行數據去重、特徵打標、日誌清洗,還是為大模型準備高質量訓練語料,這套組合都能為您提供強大支撐。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.