全部產品
Search
文件中心

DataWorks:使用資料集

更新時間:Oct 29, 2025

在節點(Shell節點、Python節點、Notebook節點)中使用資料集,以便在資料開發過程中讀寫NAS或OSS儲存中的資料。也可以在建立個人開發環境時,將資料集作為個人開發環境執行個體的儲存。

重要

建議優先閱讀管理資料集,瞭解如何建立資料集。

背景資訊

在使用DataWorks進行資料開發的過程中,當您需要讀寫儲存於OSS、NAS中的資料時,可以使用DataWorks的資料集功能。該功能支援您建立和管理資料集及其多個版本,通過資料集版本管理,您能夠追蹤資料的版本,並在新版本出現問題時迅速切換至舊版本,以確保業務流暢。

使用限制

在節點中使用資料集

本文以建立一個OSS類型的DataWorks資料集,將OSS的oss://datasets-oss.oss-cn-shanghai.aliyuncs.com/dataset01/v1/路徑掛載到DataWorks資料集的/mnt/data/dataset01路徑,並在節點中完成資料集的資料讀寫操作為例,介紹如何在節點使用資料集。

準備工作:建立資料集

  1. 建立儲存空間建立檔案系統

    本樣本以OSS類型資料集為例,在上海地區建立名為datasets-oss的bucket,並建立目錄/dataset01/v1

  2. 建立資料集

    本樣本建立OSS資料集名稱為datasets-oss,將OSS路徑oss://datasets-oss.oss-cn-shanghai.aliyuncs.com/dataset01/v1/掛載到/mnt/data/dataset01

1. 為節點配置資料集

在Shell節點或Python節點的調試配置中配置資料集datasets-oss相關資訊。

重要
  • 發布前,需在調度配置中同步添加資料集。

  • 使用資料集至少需要為節點分配0.5CU的計算資源。

image

參數

說明

資料集

配置當前節點代碼中可以訪問的資料集。

  • 如果是OSS類型的資料集,第一次讀取資料集時,您需要授權允許DataWorks資源群組可以訪問資料集配置的OSS Bucket。

  • 如果是NAS類型的資料集,需要確保DataWorks資源群組的VPC與NAS掛載點的VPC網路已連通。具體配置,請參見網路連通方案概述

本樣本中選擇在DataWorks中建立好的OSS資料集datasets-oss,選擇V1版本。

掛載路徑

配置當前節點代碼中訪問該資料集的路徑。此處將自動擷取資料集定義時配置的預設掛載路徑

重要

資料集定義時的路徑,同節點掛載多個資料集的情況下,該掛載路徑不允許衝突。

進階配置

非必填,您可以通過JSON格式指定讀寫OSS資料的工具和參數,或指定讀寫NAS檔案系統的相關配置。

  • 當您配置的資料集為OSS類型時,將預設使用ossfs 2.0訪問您資料集路徑中的OSS資料,您可以通過進階配置指定其他工具讀寫OSS。可使用的工具,請參見進階配置樣本,以下為預設配置。

    {"mountOssType":"ossfs", "upload_concurrency":64} 
  • 當添加的資料集類型為NAS時,您可以指定訪問NFS協議的Apsara File Storage NAS時的相關配置(nasOptions參數),以下為預設配置,您也可以參考手動掛載NFS協議檔案系統,自訂參數值。

    重要
    • 當前僅支援掛載NFS協議的NAS。

    • NAS當前僅支援一個進階配置參數:nasOptions,如果需要自訂掛載NAS的參數可以設定進階配置為{"nasOptions":"<參數名1=參數值>, <參數名2=參數值>,..."}

    {"nasOptions":"vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport"}

唯讀

預設可以在當前節點讀寫資料集中的資料。當前節點資料集設定為唯讀時,您將無法在當前節點代碼中向資料集掛載目錄中寫入資料,即當您在代碼中執行寫入操作時,將會因許可權問題報錯。

2. 在節點中使用資料集

本樣本以Shell節點為例,在Shell節點中綁定OSS類型資料集後,可以在Shell節點代碼中按照本地檔案管理的方式來管理的OSS資料。以下為使用預設的ossfs 2.0工具向OSS類型的資料集datasets-oss掛載路徑/mnt/data/dataset01上傳檔案file01.txt並寫入資料。

程式碼範例:

echo "Hello World" > /mnt/data/dataset01/file01.txt
ls -tl /mnt/data/dataset01

image

說明

如果運行時報錯Job Submit Failed! submit job failed directly! Caused by: execute task failed, exception: [103:ILLEGAL_TASK]:Task with dataset need 0.5cu at least!表示任務分配CU不足,請調整資源群組計算CU,至少分配0.5CU。

3. 在OSS中確認資料寫入情況

2. 在節點中使用資料集代碼執行完成以後,檔案將自動寫入資料集掛載路徑對應的OSS儲存路徑,您可以前往OSS儲存路徑查看DataWorks節點中寫入的檔案,本樣本OSS類型的資料集datasets-oss掛載路徑/mnt/data/dataset01對應的儲存路徑為oss://datasets-oss.oss-cn-shanghai.aliyuncs.com/dataset01/v1/,以下為OSS該路徑下資料寫入情況樣本。

image

在個人開發環境中使用資料集

當資料集定義好以後,您可以在建立個人開發環境執行個體時或修改已有個人開發環境執行個體配置時,將DataWorks資料集的儲存掛載到個人開發環境執行個體,後續,您可以在個人目錄的終端或Notebook中直接讀取資料集中的資料。

準備工作:建立資料集

  1. 建立儲存空間建立檔案系統

  2. 建立資料集

    本樣本以NAS類型資料集為例,在上海地區建立NAS資料集名稱為datasets-nas,將NAS路徑nas://****.cn-shanghai.nas.aliyuncs.com/mnt/dataset02/v1/掛載到/mnt/data/dataset02

1. 為個人開發環境配置資料集

建立個人開發環境執行個體,選擇已建立的NAS類型的資料集datasets-nas

image

參數

說明

資料集

配置當前節點代碼中可以訪問的資料集,需確保個人開發環境執行個體選擇的專用網路與NAS掛載點可連通。

本樣本中選擇在DataWorks中建立好的NAS資料集datasets-nas,選擇V1版本。

掛載路徑

配置個人開發環境執行個體代碼中訪問該資料集的路徑。

本樣本中將NAS資料集路徑nas://****.cn-shanghai.nas.aliyuncs.com/mnt/dataset02/v1/掛載到/mnt/data/dataset02

重要

資料集定義時的路徑,同一個個人開發環境執行個體掛載多個資料集的情況下,該掛載路徑不允許衝突。

進階配置

非必填,您可以通過JSON格式指定訪問NFS協議的Apsara File Storage NAS時的相關配置(nasOptions參數),以下為預設配置,您也可以參考手動掛載NFS協議檔案系統,自訂參數值。

重要
  • 當前僅支援掛載NFS協議的NAS。

  • NAS當前僅支援一個進階配置參數:nasOptions,如果需要自訂掛載NAS的參數可以設定進階配置為{"nasOptions":"<參數名1=參數值>,<參數名2=參數值>,..."}

{"nasOptions":"vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport"}

唯讀

預設可以在當前節點讀寫資料集中的資料。當資料集在當前節點設定為唯讀情況下,您將無法在當前節點代碼中向資料集掛載目錄中寫入資料,即當您在代碼中執行寫入操作時,將會因許可權問題報錯。

2. Notebook中讀取資料集

  1. 在資料開發頁面頂部,切換至個人開發環境執行個體,然後建立Notebook開發

  2. 在Notebook中配置如下內容。

    1. 向資料集指定路徑寫入資料。

      import os
      
      # 定義目標路徑和檔案名稱
      file_path = "/mnt/data/dataset02/file02.txt"
      
      # 確保目錄存在(如果目錄不存在則建立)
      os.makedirs(os.path.dirname(file_path),exist_ok=True)
      
      # 寫入內容
      content = "Hello World!"
      try:
          with open(file_path, "w", encoding="utf-8") as file:
              file.write(content)
          print(f"檔案已成功寫入:{file_path}")
      except Exception as e:
          print(f"寫入失敗:{str(e)}")
    2. 讀取資料集中指定路徑下的資料。

      file_path = "/mnt/data/dataset02/file02.txt"
      with open(file_path, "r") as file:
          content = file.read()
      content
  3. 分別運行兩個Python代碼。

    說明

    運行時需確認Python核心,本樣本以Python 3.11.9為例。

    image

3. 配置調度

在Notebook節點右側單擊調度配置,添加資料集相關選項,參數配置與建立個人開發環境執行個體時設定的資料集參數相同。

進階配置樣本

配置資料集時,您可以設定進階配置,通過JSON格式自訂相關參數:

配置樣本如下:

使用ossfs 2.0掛載訪問OSS

ossfs 2.0是一款專門用於通過掛載方式高效能訪問OSS(Object Storage Service)的用戶端,它具備出色的順序讀寫能力,可充分發揮OSS的高頻寬優勢,適用於對順序讀寫效能要求較高的情境,如AI訓練、巨量資料處理等計算密集型應用。這類工作負載情境主要涉及順序和隨機讀取、順序(僅支援追加)寫入操作,並且無需依賴完整的 POSIX 語義。

資料集 > 進階配置中,您可以設定進階參數,多個配置之間使用半形逗號(,)分隔。有關進階參數的使用說明,以及更多配置,請參見ossfs 2.0掛載選項說明。以下是幾個常見的情境樣本:

  • 任務過程中資料來源不變:如果要讀取的所有檔案在讀取過程中均不會被修改,可以配置較大的緩衝時間,從而減少中繼資料請求次數。典型情境例如:讀取一批已有的舊檔案,並在處理後產生一批新檔案。

    {"mountOssType":"ossfs", "attr_timeout": "7200"}
  • 快速讀寫:使用較小的中繼資料快取時間,可以平衡緩衝效率和檔案資料的及時性。

    {"mountOssType":"ossfs", "attr_timeout": "3", "negative_timeout":"0"}
  • 分布式任務讀寫一致:ossfs預設基於中繼資料快取進行檔案的資料更新。通過以下配置實現多節點同步視圖。

    { "mountOssType":"ossfs","negative_timeout": "0", "close_to_open":"false"}
  • 同時開啟過多檔案導致OOM:任務並發量較高,同時開啟大量檔案,可能引發OOM(記憶體不足)問題。通過以下配置來緩解記憶體壓力。

    {"mountOssType":"ossfs","readdirplus": "false", "inode_cache_eviction_threshold":"300000"}

使用ossfs 1.0掛載訪問OSS

ossfs 1.0是一款允許您在Linux系統上將OSS儲存空間掛載為本地檔案系統,與ossfs 2.0檔案操作方面相比,ossfs 1.0支援檔案操作方面更全面,如果遇到ossfs2掛載目錄後檔案操作不相容的情況,請嘗試使用ossfs1。

ossfs 1.0掛載所需要的具體參數,請參見ossfs 1.0掛載選項說明

使用jindofuse掛載訪問OSS

利用JindoFuse組件將OSS資料集掛載到容器的指定路徑,該工具適用於以下情境:

  • 您希望能夠像訪問本機資料集一樣讀取OSS資料,或者資料集較小,能有效利用JindoFuse的本機快取加速。

  • 您有向OSS寫入資料的需求。

資料集 > 進階配置中,您可以設定進階參數,多個配置之間使用半形逗號(,)分隔。以下僅為配置方式樣本,參數說明與更多參數配置,請參見JindoFuse使用指南使用JindoFuse掛載訪問

說明

目前DataWorks僅支援key=value格式的參數。

{ 
  "mountOssType":"jindofuse",
  "fs.oss.download.thread.concurrency": "cpu核心數2倍",
  "fs.oss.upload.thread.concurrency": "cpu核心數2倍",
  "attr_timeout": 3,
  "entry_timeout": 0,
  "negative_timeout": 0
}

使用NAS類型資料集

當添加的資料集類型為NAS時,您可以指定訪問NFS協議的Apsara File Storage NAS時的相關配置(nasOptions參數),以下為預設配置,您也可以參考手動掛載NFS協議檔案系統,自訂參數值。

重要
  • 當前僅支援掛載NFS協議的NAS。

  • NAS當前僅支援一個進階配置參數:nasOptions,如果需要自訂掛載NAS的參數可以設定進階配置為{"nasOptions":"<參數名1=參數值>, <參數名2=參數值>,..."}

{"nasOptions":"vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport"}

相關文檔