階層式命名空間

本頁面提供階層式命名空間的總覽,包括主要功能、常見用途、優點和注意事項。

總覽

階層式命名空間是 Cloud Storage 提供的一項功能,可讓您將物件整理到資料夾中,並以邏輯檔案系統結構儲存資料。將資料儲存在檔案系統結構中,可提升效能、確保一致性,並簡化資料密集型和檔案導向工作負載的管理作業。

資料夾作業提供可靠性和管理功能,包括建立、刪除、列出及重新命名資料夾。物件的階層式結構可簡化資料整理作業,並簡化資料管理工作。如果值區已啟用階層式命名空間,資料夾可包含物件、其他資料夾,或是兩者兼具。

如要在 bucket 中使用資料夾,建立 bucket 時必須啟用階層命名空間。bucket 建立完成後,就無法變更 bucket 的階層式命名空間設定。如要瞭解如何為 bucket 啟用階層命名空間,請參閱「建立及管理已啟用階層命名空間的 bucket」。

下圖顯示已啟用階層式命名空間的值區範例,其中的物件是以資料夾的階層式結構整理。

圖 1. 含有資料夾和物件的 bucket 階層。
圖 1. 含有資料夾和物件的 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 作業和功能相容

啟用階層式命名空間的值區與其他 Cloud Storage 作業的互動方式如下:

物件作業

啟用階層命名空間的 bucket 會以以下方式處理物件作業:

  • 只要您具備必要權限,UploadRewriteCompose 等作業就會自動建立任何缺少的上層資料夾。因此,您不必在上傳物件前預先建立資料夾。
  • 雖然在物件作業期間可以自動建立資料夾,但您需要使用 DeleteFolder 作業明確刪除資料夾。
  • 使用 delimiter 參數搭配 ListObjects 作業時,儲存空間會將每個子資料夾做為 prefix. 傳回,但預設會排除空白資料夾。如要納入空白資料夾 (類似於一般檔案系統清單),請務必設定 includeFoldersAsPrefixes 參數。如要瞭解在啟用階層式命名空間的值區中列出物件時,可採用的效能最佳化方法,請參閱「列出物件」。

代管資料夾作業

啟用階層式命名空間的 bucket 會以以下方式處理代管資料夾作業:

  • 啟用階層命名空間的 bucket 可透過代管資料夾提供精細的存取權控管。如要管理資料夾內的存取權,您必須建立與資料夾同名的受管理資料夾,然後對其套用 IAM 政策。代管資料夾必須有對應的資料夾。
  • 建立代管資料夾時,系統會自動建立所有缺少的上層資料夾,包括同名的資料夾。
  • 刪除資料夾時,系統會自動刪除相關聯的代管資料夾。
  • 重新命名資料夾時,系統會自動重新命名相關聯的代管資料夾。
  • 階層式命名空間 bucket 必須遵循受管理資料夾名稱規則資料夾名稱規則。雖然資料夾名稱最多可有 50 層巢狀結構,但受管理資料夾名稱最多只能有 15 層巢狀結構。受管理資料夾名稱大小上限取決於資料夾名稱大小上限,以 UTF-8 編碼時為 512 個位元組。

值區作業

您可以刪除已啟用階層命名空間的值區,方法與刪除其他值區相同。如果啟用階層式命名空間的 bucket 只包含空資料夾,且沒有物件或受管理資料夾,則可以刪除 bucket。

物件生命週期管理

物件生命週期管理功能可根據條件 (例如存在時間或前置字元),自動對物件採取動作。不過,由於 RenameFolder 作業,物件生命週期管理規則在階層式命名空間值區和扁平命名空間值區中的行為可能有所不同:

  • 具有扁平命名空間的 bucket 適用的物件生命週期管理規則:重新命名作業涉及使用工具重新命名每個物件,方法是將每個物件複製到目標位置,然後從來源位置刪除原始物件。因此,系統會在目的地位置建立新物件,並設定新的建立時間。如果目的地位置套用了以存在時間為準的物件生命週期管理規則,這些規則不會立即套用至新物件,因為新物件的建立時間已重設。

  • 已啟用階層式命名空間的值區物件生命週期管理規則:重新命名資料夾時,系統會以資料夾層級運作,不必重新命名每個物件。因此,物件的建立時間會保留,也就是說,如果重新命名的物件符合年齡條件,系統會立即套用以年齡為準的物件生命週期管理規則

如何管理已啟用階層命名空間的 bucket

您可以列出所有已啟用階層式命名空間的 bucket,無論儲存空間配置為何。值區的儲存空間配置說明物件在值區中的排列方式,可以是扁平命名空間或階層式命名空間。如需查看值區儲存空間配置的操作說明,請參閱「取得值區的儲存空間配置」。如要列出所有 buckets,請按照「列出 buckets」一文中的詳細指示操作。

您可以刪除已啟用階層命名空間的值區,方法與刪除其他值區相同。如要刪除 bucket,如果已啟用階層式命名空間的 bucket 只包含空白資料夾,且沒有物件或代管資料夾,則系統會將該 bucket 視為空白。如需刪除 bucket 的操作說明,請參閱「刪除 bucket」。

定價

如需價格資訊,請參閱 Cloud Storage 定價

限制

階層式命名空間的限制如下:

  • 建立 bucket 時,您必須選擇是否使用階層式命名空間;bucket 建立後,就無法變更階層式命名空間設定。

  • 如要啟用階層命名空間,bucket 也必須啟用 統一 bucket 層級存取權

  • 使用階層命名空間的 bucket 不支援下列 Cloud Storage 功能:

    • 自動調整級別
    • 值區鎖定功能
    • 物件訴訟保留
    • Object Retention Lock
    • 物件版本管理
    • 遷移 bucket

後續步驟

歡迎試用

如果您未曾使用過 Google Cloud,歡迎建立帳戶,親自體驗實際使用 Cloud Storage 的成效。新客戶可以獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。

免費試用 Cloud Storage