階層式命名空間是 Cloud Storage 提供的一項功能,可讓您將物件整理到資料夾中,並以邏輯檔案系統結構儲存資料,進而簡化資料管理工作。階層命名空間提供高效能目錄語意和不可分割的資料夾作業,有助於加快資料密集型 AI/機器學習和數據分析工作負載的處理速度。
本頁面提供階層式命名空間的總覽,包括主要功能、常見用途、優點和限制。
運作方式
如要在 bucket 中使用資料夾,建立 bucket 時必須啟用階層命名空間。bucket 建立完成後,就無法變更 bucket 的階層式命名空間設定。如要瞭解如何為 bucket 啟用階層命名空間,請參閱「建立及管理已啟用階層命名空間的 bucket」。
下圖顯示已啟用階層式命名空間的 bucket 範例,其中的物件是以資料夾的階層式結構整理。如果值區已啟用階層式命名空間,資料夾中可以同時包含物件和子資料夾。
主要功能與特色
階層式命名空間提供下列功能:
更高的每秒初始查詢數 (QPS):與未啟用階層式命名空間的 bucket 相比,啟用階層式命名空間的 bucket 讀取和寫入物件的初始 QPS 上限最多可高出 8 倍。初始 QPS 越高,就越容易擴充資料密集型工作負載,並提升總處理量。如要瞭解在啟用階層式命名空間的 Bucket 中使用資料夾時,如何最佳化效能,請參閱「資料夾管理」。
資料夾:資料夾可做為物件和其他資料夾的容器,並支援建立、刪除及取得資料夾等作業。將資料儲存在資料夾結構中,可提升效能、確保一致性,並簡化資料密集型和檔案導向工作負載的管理作業。
資料夾作業:資料夾作業提供可靠性和管理功能,包括建立、刪除、列出及重新命名資料夾。
重新命名資料夾:重新命名資料夾作業可協助您以原子方式重新命名資料夾的路徑及其基礎資料夾,而不會刪除任何物件。這項技術效率高且省時,特別適合用於含有多個物件的大型資料夾。
列出資料夾:列出 bucket 或特定資料夾中的所有資料夾,協助您管理及瞭解儲存資料的結構。
何時應使用階層命名空間?
使用需要檔案系統階層和語意的應用程式時,建議啟用階層式命名空間。階層式命名空間有助於處理資料密集型工作,例如分析和 AI/機器學習工作負載。以下是一些您應考慮使用階層式命名空間的常見情境:
以 Hadoop 為基礎的處理作業:傳統上,Hadoop 和 Spark 工作負載會預期檔案和資料夾採用檔案系統儲存結構和以時間為準的命名方式。階層式命名空間與 Cloud Storage 連接器整合,可提供更高的處理量和不可分割的資料夾重新命名功能,進而提升許多資料處理管道的資料完整性和一致性。
以檔案為導向的處理工作負載:批次分析處理、金融服務或高效能運算等工作負載,會根據資料夾和檔案的階層結構劃分成多個分割區。階層式命名空間可透過資料夾管理專用 API 管理這些環境。此外,階層式命名空間可簡化管理包含其他資料夾和物件的資料夾。只要使用單一 API 指令,即可快速重新命名資料夾和所有內容,節省寶貴的時間和資源。
AI/機器學習處理:TensorFlow、Pandas 和 PyTorch 等 AI/機器學習工具需要檔案系統存取控制和語意。階層命名空間 (尤其是搭配 Cloud Storage FUSE 使用時) 可提高處理量,並有效存取資料。因此,階層式命名空間可提升機器學習模型疊代的效能和可靠性。
為 bucket 啟用階層命名空間前,請先瞭解階層命名空間的限制。如要瞭解階層式命名空間限制,請參閱「限制」。
階層式命名空間的優點
為 bucket 啟用階層命名空間後,即可執行下列操作:
最佳化整理方式:您可以將資料整理成階層式資料夾結構,方便管理及尋找檔案或資料集。
建立檔案系統生態系統:階層命名空間會導入檔案系統功能,例如資料夾、重新命名資料夾和列出資料夾,這對以檔案為導向的應用程式很有幫助,包括 Hadoop 生態系統和 AI/機器學習工作負載。
提升效能:擴充資料密集型工作負載,以處理更高的輸送量,即可提升應用程式的整體效能。
平台支援
採用階層結構式命名空間的 bucket 支援下列 Cloud Storage 平台功能:
所有 Cloud Storage 物件 API 和廣泛使用的 Cloud Storage 功能。如要瞭解不支援的功能,請參閱「限制」一節。
使用 Storage 移轉服務,將資料從標準值區移轉至具有階層式命名空間的值區。
與下列產品整合:
Cloud Storage 連接器,由 Dataproc 維護,適用於 Hadoop 工作負載。詳情請參閱「使用啟用階層式命名空間的 bucket 處理 Hadoop 工作負載」。
Cloud Storage FUSE:使用用戶端以檔案系統的形式存取 bucket。
與 Cloud Storage 作業和功能相容
啟用階層式命名空間的 bucket 與其他 Cloud Storage 作業的互動方式如下:
物件作業的處理方式
啟用階層命名空間的 bucket 會以以下方式處理物件作業:
- 只要您具備必要權限,
Upload、Rewrite和Compose等作業會自動建立任何缺少的上層資料夾。因此,您不必在上傳物件前預先建立資料夾。 - 雖然在物件作業期間可以自動建立資料夾,但您需要使用
DeleteFolder作業明確刪除資料夾。 - 使用
delimiter參數搭配ListObjects作業時,儲存空間會將每個子資料夾做為prefix.傳回,但預設會排除空白資料夾。如要納入空白資料夾 (類似於一般檔案系統清單),請務必設定includeFoldersAsPrefixes參數。如要瞭解在啟用階層式命名空間的值區中列出物件時,可採用的效能最佳化方法,請參閱「列出物件」。
代管資料夾的處理方式
啟用階層式命名空間的 bucket 搭配代管資料夾使用時,可提供精細的存取權控管。在啟用階層式命名空間的 bucket 中,「資料夾」是實際儲存資料的目錄,而「代管資料夾」則是專門用來對該目錄套用精細 IAM 權限的資源。如要管理資料夾的存取權,您必須建立與資料夾同名的代管資料夾,然後對其套用 IAM 政策。
啟用階層命名空間後,系統會以以下方式處理受管理資料夾。
- 建立代管資料夾時,系統會自動建立所有缺少的上層資料夾,包括同名的資料夾。舉例來說,假設您有一個啟用階層命名空間的空白 bucket,名稱為
example-ai-datasets。如果您在example-ai-datasets中建立名為2025/training-data/的受管理資料夾,Cloud Storage 會自動建立上層資料夾2025/和目標資料夾training-data/。 - 代管資料夾必須有相關聯的資料夾,才能存在。
- 刪除資料夾時,系統會自動刪除相關聯的代管資料夾。
- 重新命名資料夾時,系統會自動重新命名相關聯的代管資料夾。
- 具有階層式命名空間的 bucket 必須遵循受管理資料夾命名規則和資料夾命名規則。雖然資料夾名稱最多可有 50 層巢狀結構,但受管理資料夾名稱最多只能有 15 層巢狀結構。受管理資料夾名稱大小上限取決於資料夾名稱大小上限,以 UTF-8 編碼時為 512 個位元組。
如何處理 bucket 作業
以下各節說明啟用階層式命名空間後,系統如何處理 bucket 作業。
您可以列出所有已啟用階層命名空間的 bucket,無論儲存空間配置為何。值區的儲存空間版面配置說明物件在值區中的排列方式,可以是扁平命名空間或階層式命名空間。如需查看 bucket 儲存空間配置的操作說明,請參閱「取得 bucket 的儲存空間配置」。如要列出所有 buckets,請按照「列出 buckets」一文中的詳細指示操作。
只要 bucket 為空,您就可以刪除已啟用階層命名空間的 bucket。空儲存空間不會包含任何物件或代管資料夾。空值區可包含空資料夾 (內無物件)。
物件生命週期管理規則的處理方式
物件生命週期管理可根據條件 (例如存在時間或前置字元),自動對物件採取動作。不過,由於 RenameFolder 作業,物件生命週期管理規則在階層式命名空間 bucket 和扁平命名空間 bucket 中的行為可能有所不同:
具有扁平命名空間的 bucket 適用的物件生命週期管理規則:重新命名作業會使用工具重新命名每個物件,方法是將每個物件複製到目標位置,然後從來源位置刪除原始物件。因此,系統會在目的地位置建立新物件,並設定新的建立時間。如果目的地位置套用了以存在時間為準的物件生命週期管理規則,由於新物件的建立時間會重設,因此這些規則不會立即套用至新物件。
已啟用階層式命名空間的值區物件生命週期管理規則:重新命名資料夾時,系統會以資料夾層級運作,不必重新命名每個物件。因此,物件的建立時間會保留,也就是說,如果重新命名的物件符合存在時間條件,系統會立即套用以存在時間為準的物件生命週期管理規則。
定價
如需價格資訊,請參閱 Cloud Storage 定價。
限制
階層式命名空間的限制如下:
建立 bucket 時,您必須選擇是否使用階層命名空間;bucket 建立後,就無法變更階層命名空間設定。
如要啟用階層命名空間,bucket 也必須啟用 統一 bucket 層級存取權。
使用階層命名空間的 bucket 不支援下列 Cloud Storage 功能:
- 值區鎖定功能
- 遷移 bucket
- 跨 bucket 複製
- 物件訴訟保留
- Object Retention Lock
- 物件版本管理
後續步驟
歡迎試用
如果您未曾使用過 Google Cloud,歡迎建立帳戶,親自體驗實際使用 Cloud Storage 平台的成效。新客戶還能獲得價值 $300 美元的免費抵免額,用於執行、測試及部署工作負載。
免費試用 Cloud Storage