本頁說明如何搭配 Dataflow 使用 Cloud Storage FUSE,處理機器學習 (ML) 工作用的資料集。
處理機器學習工作時,Dataflow 可用於處理大型資料集。不過,OpenCV 等用於 ML 的常見軟體程式庫有輸入檔案需求。這些應用程式通常需要存取檔案,就像檔案儲存在本機電腦硬碟中,而非雲端儲存空間。這項規定造成困難和延誤。為解決這個問題,管道可以針對輸入內容使用特殊的 I/O 連接器,或先將檔案下載到 Dataflow 虛擬機器 (VM),再進行處理。這些解決方案通常效率不彰。
Cloud Storage FUSE 可避免使用這些效率不彰的解決方案。Cloud Storage FUSE 可讓您將 Cloud Storage 值區掛接到 Dataflow VM。這樣一來,Cloud Storage 中的檔案就會顯示為本機檔案。因此,機器學習軟體可以直接存取這些檔案,不必事先下載。
優點
使用 Cloud Storage FUSE 執行 ML 工作有下列優點:
- 使用本機檔案系統語意,即可在 Dataflow VM 中存取 Cloud Storage 上代管的輸入檔案。
- 由於系統會視需要存取資料,因此不必事先下載輸入檔案。
支援與限制
- 如要在 Dataflow 中使用 Cloud Storage FUSE,您必須為工作站 VM 設定外部 IP 位址,使其符合網際網路存取需求。
指定要搭配 Cloud Storage FUSE 使用的 bucket
如要指定要掛接至 VM 的 Cloud Storage bucket,請使用 --experiments
旗標。如要指定多個值區,請在值區名稱之間使用半形分號分隔符 (;
)。
格式如下:
--experiments="gcsfuse_buckets=CONFIG"
更改下列內容:
CONFIG
:以半形分號分隔的 Cloud Storage 項目清單,每個項目都是下列其中一種:BUCKET_NAME
:Cloud Storage 值區名稱。 例如,dataflow-samples
。如果省略 bucket 模式,bucket 會視為唯讀。BUCKET_NAME:MODE
:Cloud Storage 值區名稱和相關聯的模式,其中MODE
為ro
(唯讀) 或rw
(讀寫)。例如:
--experiments="gcsfuse_buckets=read-bucket1;read-bucket2:ro;write-bucket1:rw"
在本例中,指定模式可確保:
gs://read-bucket1
是以唯讀模式掛接。gs://read-bucket2
是以唯讀模式掛接。gs://write-bucket1
以讀寫模式掛接。
Beam 管道程式碼可在
/var/opt/google/gcs/BUCKET_NAME
存取這些值區。