全部產品
Search
文件中心

DataWorks:Notebook 基礎開發

更新時間:Jan 07, 2026

DataWorks Notebook 提供一個互動式、模組化的資料分析與開發環境。您可以使用 Python、SQL 和 Markdown 儲存格,串連 MaxCompute、EMR、AnalyticDB 等多種計算引擎,實現從資料處理、探索性分析、可視化到模型開發的全鏈路任務。本文檔將指導您如何高效使用 Notebook 完成資料開發與調度任務。

快速入門:5分鐘運行您的第一個Notebook

本節將引導您完成一個最簡流程:建立一個 Notebook,使用 Python 傳遞參數給 SQL,並查詢 MaxCompute 表資料。

開始前,請確保您已滿足以下條件:

  • 當前工作空間已開通並使用新版資料開發(Data Studio)

  • 已建立Serverless 資源群組。Notebook在生產環境運行需要依賴Serverless資源群組。

  • 已建立個人開發環境執行個體。Notebook在開發環境調試運行需要依賴個人開發環境執行個體。

    如果您尚未建立,請參見建立個人開發環境執行個體

操作步驟:

  1. 建立 Notebook 節點

    1. 進入 Data Studio,在資料開發專案目錄下,建立 Notebook 節點。

    2. 為 Notebook 命名(例如 hello_notebook)並提交。

  2. 選擇個人開發環境

    在頂部導航處單擊個人開發環境,從下拉式清單中選擇您已建立的個人開發環境執行個體。

  3. 編寫 Python 儲存格以定義參數

    添加一個Python儲存格,並輸入以下代碼。此步驟定義一個城市變數,用於後續的 SQL 查詢。

    # 定義一個變數,用於後續SQL查詢
    city = 'Beijing'
    print(f"已定義城市變數 city = {city}")
  4. 編寫 SQL 儲存格以查詢資料

    1. 在第一個儲存格下方,新增一個 SQL 儲存格。

    2. 在儲存格右下角,將 SQL 類型切換為 MaxCompute SQL

    3. 輸入以下 SQL 代碼。代碼通過 ${city} 文法引用了上一步 Python 儲存格中定義的 city 變數。

      -- 使用Python中定義的變數進行查詢  
      SELECT '${city}' AS city;
  5. 運行並查看結果

    1. 單擊 Notebook 上方工具列的全部運行按鈕。

    2. 觀察每個儲存格的運行情況:

      • Python 儲存格下方會輸出 已定義城市變數 city = Beijing

      • SQL 儲存格下方會顯示查詢結果的表格。

至此,您已成功建立並運行一個包含 Python 和 SQL 互動的 Notebook。

核心概念

理解以下核心概念,是確保 Notebook 在開發和生產環境中行為一致的關鍵。

開發環境 vs. 生產環境

對比項

開發環境

生產環境

運行載體

個人開發環境執行個體

調度配置中指定的資源群組鏡像

核心差異

使用個人獨佔的開發執行個體,您可以在其中自由安裝 Python 庫進行調試。

無論是通過營運中心周期性調度,還是在 Data Studio 中手動觸發工作流程運行,任務都會在調度配置中指定的資源群組上運行。其環境(如依賴庫、網路等)完全由您選擇的鏡像和資源群組配置決定。

如何保障一致

如果您在個人開發環境執行個體中通過 pip install 等方式進行了Python包的安裝,為確保生產環境具備與開發環境時相同的依賴,您需將個人開發環境製作DataWorks鏡像,並在調度配置中選用該自訂鏡像。

重要

網路連通情況說明:個人開發環境不綁定VPC時,預設綁定一個頻寬有限的隨機公網IP,可直接連通公網;但發布至生產環境的Notebook節點網路是跟隨調度配置裡配置的資源群組。建議在個人開發環境中綁定調度配置的資源群組,此時兩者環境保持網路一致。

計算資源與核心

  • 計算資源:指 Notebook 串連的後端計算引擎,如 MaxCompute、EMR Serverless Spark 等。SQL 儲存格必須綁定一個計算資源來執行。

  • Python 核心:指執行 Python 代碼的後端環境。在 DataWorks Notebook 中,這通常是您的個人開發環境執行個體。您可以通過 Magic Command(如 %odps)在 Python 代碼中建立與計算資源的串連,從而提交任務或操作資料。

目錄類型與適用情境

您建立 Notebook 的位置決定其協作模式、許可權和發布流程。

目錄類型

適用情境

協作與發布

專案目錄

團隊協作與周期性生產任務。此目錄下的節點是工作空間共用的,遵循標準的開發、提交、發布流程。

允許多人協作開發。節點需要發布到生產環境,才能被周期性調度。

個人目錄

個人開發與調試。此目錄對其他工作空間成員不可見,用於存放個人指令碼和臨時任務。

僅自己可見。若要被調度,需先提交專案目錄,再進行發布。

開發與調試 Notebook

重要
  • Data Studio預設不自動儲存,建議您開發過程及時手動儲存,避免丟失代碼。您也可在Data Studio的編輯器設定 > Files: Auto Save中,設定為自動儲存。

  • 若運行過程中卡頓或長時間無反應,可點擊上方工具列的重啟按鈕重啟Notebook核心。

儲存格管理

  • 添加儲存格:將滑鼠移至上方在現有儲存格的上方或下方邊緣,單擊出現的+ SQL等按鈕。也可以使用頂部工具列的按鈕。

  • 切換儲存格類型:單擊儲存格右下角的類型標識(如 Python),在彈出的菜單中選擇新的類型,如 SQLMarkdown。切換類型時,儲存格內的代碼內容會保留,您需要手動修改以適應新類型。

  • 移動儲存格:將滑鼠移至上方在儲存格左側的藍色豎線上,按住並拖動即可調整順序。

  • 運行儲存格

    • 運行單個:單擊儲存格左側的運行按鈕。

    • 運行全部:單擊 Notebook 頂部工具列的全部運行按鈕。

參數傳遞

Python 變數傳遞至 SQL

在 Python 儲存格中定義的變數,可以在後續的 SQL 儲存格中通過 ${變數名} 的格式直接引用。

樣本:

  1. Python 儲存格

    table_name = "dwd_user_info_d"
    limit_num = 10
  2. SQL 儲存格

    SELECT * FROM ${table_name} LIMIT ${limit_num};

SQL 結果傳遞至 Python

當一個 SQL 儲存格執行SELECT 查詢後,其結果會自動產生一個 DataFrame 變數,可供後續的 Python 儲存格使用。

重要

若存在多個SQL語句,僅會將最後一條SQL語句的結果存入DataFrame變數。

  • 變數命名:預設變數名為 df_ 開頭,您可以單擊 SQL 儲存格左下角的變數名進行重新命名。

  • 變數類型

    若支援多種變數類型,點擊左下角DataFrame也切換類型。
    • 對於 MaxCompute SQL,支援Pandas DataFrameMaxCompute MaxFrame 對象。

    • 對於ADB Spark SQL,支援Pandas DataFramePySpark MaxFrame 對象。

    • 對於其他 SQL 類型,產生的是Pandas DataFrame對象。

樣本:

image

Copilot 輔助編程

DataWorks Copilot 是內建的智能編程助手,可以協助您產生和解釋代碼。

喚起方式

  • 在選擇的儲存格左上方單擊 Copilot image表徵圖。

  • 在SQL儲存格內右鍵,選擇 Copilot

  • 使用快速鍵 Cmd+I (Mac) 或 Ctrl+I (Windows)。

調度與發布 Notebook

為了讓 Notebook 能夠按計劃周期性運行,您需要進行調度配置並將其發布到生產環境。

1、配置調度參數(參數化調度)

如需每次調度運行時,Notebook 中的參數能動態變化(例如,按天處理不同分區的資料),可以設定參數化調度。

  1. 標記參數儲存格: 在包含核心參數定義的 Python 儲存格中,單擊右上方的 ... 菜單,選擇 Mark Cell as Parameters。該儲存格會被添加一個 parameters 標籤,表明它是調度任務的參數入口。

    image

  2. 配置調度參數

    1. 在 Notebook 右側面板,單擊調度配置

    2. 調度參數地區,為您在代碼中定義的變數(如 var)賦值。

      image

當任務被調度系統自動執行時,代碼中 var 參數的實際值,將由在調度參數中配置的值動態替換。

2、配置運行環境與資源

  1. 配置鏡像:在調度配置中,選擇一個包含 Notebook 運行所需全部依賴的鏡像。這是確保生產環境成功啟動並執行關鍵。

    重要

    如果您在個人開發環境執行個體中通過 pip install 等方式進行了Python包的安裝,為確保生產環境具備與開發環境時相同的依賴,您需將個人開發環境製作DataWorks鏡像,並在調度配置中選用該自訂鏡像。

  2. 配置資源群組:選擇用於執行任務的資源群組。對於 Serverless 資源群組,建議配置不超過 16CU,以避免因資源不足導致任務啟動失敗。單個任務最大支援 64CU

  3. 配置關聯角色:如需進行細粒度的許可權管控,可以為節點關聯一個特定的 RAM角色,使其以該角色的身份運行。詳情請參見配置節點關聯角色

3、發布節點

只有專案目錄下的節點才能被發布和周期性調度。

  • 對於專案目錄下的 Notebook:完成配置後,單擊頂部工具列的發布按鈕。

  • 對於個人目錄下的 Notebook:需先單擊儲存按鈕,將其提交到專案目錄,然後再執行發佈動作。

發布成功後,您可以在營運中心周期任務頁面監控和管理您的 Notebook 任務。

常見問題

  • Q:為什麼My Code在開發時能訪問公網,但調度運行時卻失敗了?

    A:這是因為開發環境和生產環境的網路原則不同。

    • 開發環境 (個人開發環境):為了方便調試,個人開發環境執行個體在未設定VPC的情況下,預設會提供有限的公網訪問能力,讓您可以臨時安裝包或調用API。

    • 生產環境 (周期調度任務): 出於安全和穩定考慮,預設在專用網路中運行,不能直接存取公網。任務的網路設定由您在調度配置中選擇的資源群組決定。如果該資源群組所在VPC沒有配置NAT Gateway,則無法訪問公網。

    • 解決方案: 確保個人開發環境執行個體和Serverless資源群組設定相同的VPC專用網路。

  • Q:為什麼My Code在開發環境時成功運行,但調度運行時卻找不到三方包?

    A:請確保已將所有依賴包(如Python庫)提前製作成自訂鏡像,並在調度配置中指定該鏡像。詳情請參見個人開發環境製作DataWorks鏡像

  • Q:我如何更換Python核心版本?

    A:可在個人開發環境的終端image手動安裝需要Python版本,然後在Notebook工具列右側單擊image按鈕,切換其他Python核心版本。不推薦使用額外安裝Python核心,因為建立版本不具備SQL儲存格需要的依賴,無法正常使用。

相關文檔