使用文件夹整理代码资产

以下文档介绍了 BigQuery 文件夹的运作方式。您可以使用文件夹以层次结构整理代码资产,类似于操作系统所用的结构。例如,您可以创建一个文件夹来整理销售分析的代码资产,并为每个财政年度分别创建一个子文件夹。您还可以使用文件夹来管理对代码资产的访问权限。文件夹提供 Identity and Access Management (IAM) 政策继承功能,您可以使用该功能更高效地控制对代码资产的访问权限。通过政策继承,子文件夹和文件可以继承其父文件夹的权限。

BigQuery 文件夹由 Dataform 提供支持。

如需详细了解如何在 BigQuery 中使用文件夹,请参阅创建和管理文件夹

使用文件夹整理代码资产

您可以在 BigQuery Studio 的文件窗格中使用文件夹来访问和整理代码资产:

BigQuery Studio 中 **文件** 窗格的位置。

文件夹是用于整理代码资产的基本容器,类似于标准文件系统文件夹。您可以在父文件夹中创建和整理子文件夹,还可以将代码资产移入和移出文件夹。如果您为某个文件夹授予权限,相应权限会传播到该文件夹包含的所有文件夹和文件。

您只能使用文件夹来整理单个文件代码资产,例如笔记本、已保存的查询、数据画布和数据准备文件。

文件夹类型

BigQuery 支持以下类型的文件夹:

  • 用户文件夹:每个用户都有一个个人根文件夹,显示为用户(用户邮箱)。您的用户文件夹包含您在给定项目和位置中创建的所有代码资产。您可以在用户文件夹中创建子文件夹来整理这些代码资产。除非您选择与其他用户共享,否则只有您才能访问用户文件夹中的文件和文件夹。

  • 团队文件夹:团队文件夹专为团队协作而设计,类似于 Google 云端硬盘中的共享云端硬盘。您可以使用团队文件夹来整理属于特定团队的代码资产。只有对根团队文件夹拥有所有者权限的用户才能授予权限,以允许其他用户使用该团队文件夹。

文件夹代码区域

您可以在不同的代码区域中拥有文件夹和代码资产。例如,您可以将 folderA 及其包含的代码资产放在 us-west1 区域中,并将 folderB 及其包含的代码资产放在 us-central1 区域中。您正在查看的区域会显示在文件窗格中:

当前代码区域会显示在 **文件** 窗格中的项目名称旁边。

IAM 政策继承

文件和文件夹资源的 IAM 访问权限采用分层结构。此层次结构可确保访问政策从父文件夹继承到其内容。

在文件夹上设置 IAM 政策后,该政策授予的权限也会应用于该文件夹子树中的所有文件和嵌套子文件夹。这会导致以下结果:

  • 权限通过文件夹层次结构继承。如果用户被授予高级别文件夹的特定角色,则他们对该文件夹及其子文件夹中包含的所有资源都拥有该角色所含的权限。
  • 用户对资源拥有的权限包括直接针对该资源设置的政策,以及从其路径中的每个文件夹(直至根文件夹)继承的所有政策。

因此,您无需项目级权限即可对位于文件夹结构深处的资源执行操作。您只需对该资源路径中的任何文件夹拥有适当的权限。例如,如果您想在子文件夹中创建文件,则需要对该特定子文件夹或其任何父文件夹(包括顶级文件夹)拥有必要的权限。

以下是将 IAM 政策应用于文件和文件夹的最佳实践:

  • 将 IAM 政策应用于层次结构中需要统一权限的最高级文件夹。例如,如果某个团队需要访问其团队目录中的所有数据,请在团队文件夹级层授予必要的角色,而不是在各个项目子文件夹级层授予。
  • 请始终授予用户或服务执行其任务所需的最低权限集。避免授予广泛的角色,而应尽可能使用更具体的文件夹级角色和权限。

在创建资源时授予的 IAM 角色

创建文件夹时,系统会自动授予以下角色:

  • 在用户根节点中创建文件夹的用户会自动获得这些文件夹的 Dataform Admin 角色 (roles/dataform.admin)。
  • 根团队文件夹的创建者会自动获得该团队文件夹的 Dataform Admin 角色 (roles/dataform.admin)。

在团队文件夹的子树中创建新文件或文件夹时,您不会自动获得任何角色。

繁忙资源

如果用户文件夹或团队文件夹正积极参与移动操作(无论是作为要移动的对象还是移动的目标位置),则该文件夹处于“忙碌”状态。系统会限制繁忙资源执行以下操作,以确保迁移期间的数据完整性:

  • 成为另一项移动操作的对象。
  • 成为另一项移动操作的目标。
  • 是移动对象的祖先。
  • 成为删除操作的对象。

限制

BigQuery 文件夹存在以下限制:

  • 文件夹最多只能嵌套 5 层。
  • 如果文件夹数量非常多(数十万个),则在处理文件夹时性能会下降。例如,在加载文件资源管理器或展开文件夹时。
  • 您无法移动包含超过 100 个文件或文件夹的文件夹。

位置

所有 Dataform 位置都支持 BigQuery 文件夹。

后续步骤