使用資料夾整理程式碼資產

以下文件說明 BigQuery 資料夾的運作方式。您可以運用資料夾,以類似作業系統的方式,在階層式結構中整理程式碼資產。舉例來說,您可以建立資料夾來整理銷售分析的程式碼資產,並為每個會計年度建立子資料夾。您也可以使用資料夾管理程式碼資產的存取權。資料夾提供身分與存取權管理 (IAM) 政策的繼承功能,可讓您更有效率地控管程式碼資產的存取權。透過政策沿用功能,子資料夾和檔案可以沿用上層資料夾的權限。

BigQuery 資料夾是由 Dataform 驅動。

如要進一步瞭解如何在 BigQuery 中使用資料夾,請參閱建立及管理資料夾

使用資料夾整理程式碼資產

您可以在 BigQuery Studio 的「檔案」窗格中使用資料夾存取及整理程式碼資產:

BigQuery Studio 中「檔案」窗格的位置。

資料夾是整理程式碼資產的基本容器,類似於標準檔案系統資料夾。您可以在父項資料夾中建立及整理子資料夾,也可以將程式碼資產移入或移出資料夾。授予資料夾權限時,權限會傳播至該資料夾包含的所有資料夾和檔案。

資料夾只能用來整理單一檔案的程式碼資產,例如筆記本、已儲存的查詢、資料畫布和資料準備檔案。

資料夾類型

BigQuery 支援下列類型的資料夾:

  • 使用者資料夾:每位使用者都有個人根資料夾,顯示為「使用者 (使用者電子郵件地址)」。使用者資料夾包含您在指定專案和位置中建立的所有程式碼資產。您可以在使用者資料夾中建立子資料夾,整理這些程式碼資產。使用者資料夾中的檔案和資料夾只有您能存取,除非您選擇與其他使用者共用。

  • 團隊資料夾:團隊資料夾專為團隊協作而設計,類似於 Google 雲端硬碟中的共用雲端硬碟。您可以使用團隊資料夾整理特定團隊的程式碼資產。只有對根團隊資料夾擁有者權限的使用者,才能授予權限,讓其他使用者使用團隊資料夾。

資料夾程式碼區域

您可以在不同的程式碼區域中擁有資料夾和程式碼資產。舉例來說,您可以在 us-west1 區域中擁有 folderA 和其中包含的程式碼資產,並在 us-central1 區域中擁有 folderB 和其中包含的程式碼資產。您目前查看的區域會顯示在「檔案」窗格中:

**「檔案」** 窗格中的專案名稱旁會顯示目前的程式碼區域。

IAM 政策沿用

檔案和資料夾資源的 IAM 存取權採用階層式結構。這個階層可確保存取政策會從上層資料夾沿用至內容。

在資料夾上設定 IAM 政策後,該政策授予的權限也會套用至資料夾子樹狀結構中的所有檔案和巢狀子資料夾。這會產生下列結果:

  • 權限是透過資料夾階層繼承,如果使用者在頂層資料夾中獲派特定角色,就能以該角色存取資料夾及其子資料夾中的所有資源。
  • 使用者在資源上擁有的權限,包括直接在該資源上設定的政策,以及從路徑中每個資料夾沿用的所有政策 (直到根目錄為止)。

因此,您不需要專案層級的權限,就能對位於資料夾結構深處的資源執行動作。您只需要路徑中任何資料夾的適當權限,即可存取該資源。舉例來說,如要在子資料夾中建立檔案,您必須擁有特定子資料夾或任何上層資料夾 (包括頂層資料夾) 的必要權限。

以下是將 IAM 政策套用至檔案和資料夾的最佳做法:

  • 在階層中權限需求一致的最高層資料夾套用 IAM 政策。舉例來說,如果團隊需要存取團隊目錄中的所有資料,請在團隊資料夾層級授予必要角色,而不是在個別專案子資料夾層級授予。
  • 請務必只授予使用者或服務執行工作所需的最低權限。如果可以使用更具體的資料夾層級角色和權限,請避免授予廣泛的角色。

在資源建立時授予的 IAM 角色

建立資料夾時,系統會自動授予下列角色:

  • 在使用者根節點中建立資料夾的使用者,會自動取得這些資料夾的Dataform 管理員角色 (roles/dataform.admin)。
  • 根團隊資料夾的建立者會自動取得該團隊資料夾的 Dataform 管理員角色 (roles/dataform.admin)。

在團隊資料夾的子樹狀結構中建立新檔案或資料夾時,您不會自動獲得任何角色。

忙碌的資源

如果使用者資料夾或團隊資料夾正積極參與移動作業 (無論是移動的物件或移動目的地),就會處於「忙碌」狀態。系統會限制忙碌資源執行下列動作,確保遷移期間的資料完整性:

  • 是另一項移動作業的物件。
  • 是另一項移動作業的目的地。
  • 成為移動物件的祖先。
  • 成為刪除作業的物件。

限制

BigQuery 資料夾有下列限制:

  • 資料夾巢狀結構最多只能有 5 層。
  • 如果資料夾數量過多 (數十萬個),處理資料夾時效能會變慢。舉例來說,載入檔案總管或展開資料夾時。
  • 如果資料夾包含超過 100 個檔案或資料夾,就無法移動該資料夾

位置

所有 Dataform 位置都支援 BigQuery 資料夾。

後續步驟