使用 BigQuery Studio Git 代码库管理代码

您可以使用 BigQuery Studio Git 代码库管理 SQL 脚本和笔记本。此功能将版本控制直接集成到 BigQuery Studio 文件浏览器中,让您无需离开 Cloud de Confiance 控制台即可克隆代码库、 管理分支和执行 Git 操作。

与经典 代码库相比,BigQuery Studio Git 代码库提供了更精简的基于文件夹的 体验。 BigQuery Studio Git 代码库直接显示在左侧窗格中的用户根文件夹下。

通过使用 BigQuery Studio Git 代码库,您可以像处理标准文件和目录一样与代码资产互动,同时保持与远程 Git 代码库的连接。

限制

  • BigQuery Studio Git 代码库仅限于用户根文件夹上下文,供私人使用。请勿与其他用户共享这些代码库。虽然这些代码库显示在用户根文件夹(项目中的资产的虚拟表示形式)中,但它们实际上是在项目级层创建的。
  • 不支持将 Developer Connect 账号连接器与 Git 代理搭配使用。
  • 装载位置内的文件系统操作会消耗 Dataform 配额。
  • 包含大量文件、文件大小较大、分支较多或提交历史记录较深且复杂的代码库需要更长时间才能克隆。克隆操作可能会超出操作超时时间,从而导致无法成功创建代码库。
  • 存储在 BigQuery Studio Git 代码库装载中的笔记本文件的大小不能超过 30 MB。如果文件大于 30 MB,请将其保存到 Colab 运行时的本地存储空间(装载位置之外)。
  • 当您在装载之外对 Git 代码库进行更改(例如,通过修改或重命名左侧窗格中的文件)时,这些更改最多可能需要 60 秒才能在笔记本运行时的装载中显示。 您可以通过将 CACHE_TTL_SECONDS 参数传递给构造函数来调整此时长:

      FuseWidget(CACHE_TTL_SECONDS=NUMBER)
    

    NUMBER 替换为缓存保持有效状态的秒数。减小此值会增加同步频率 ,并更快地消耗 Dataform 配额。

准备工作

在您的 Cloud de Confiance 项目中启用 Developer Connect API。

启用该 API

所需的角色

如需获得使用 BigQuery Studio Git 代码库管理代码所需的权限,请让管理员授予您项目的Developer Connect OAuth User (roles/developerconnect.oauthUser) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色包含 使用 BigQuery Studio Git 代码库管理代码所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需使用 BigQuery Studio Git 代码库管理代码,您需要以下权限:

  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • developerconnect.operations.list
  • developerconnect.operations.get
  • developerconnect.locations.list
  • developerconnect.locations.get
  • developerconnect.users.startOAuth
  • developerconnect.users.finishOAuth
  • developerconnect.users.fetchAccessToken
  • developerconnect.users.getSelf
  • developerconnect.users.deleteSelf
  • developerconnect.accountConnectors.get
  • developerconnect.accountConnectors.list
  • developerconnect.accountConnectors.gitProxyUse
  • developerconnect.accountConnectors.httpProxyUse
  • developerconnect.accountConnectors.gitProxyRead
  • developerconnect.accountConnectors.gitProxyWrite
  • developerconnect.accountConnectors.httpProxyRead
  • developerconnect.accountConnectors.httpProxyWrite
  • developerconnect.accountConnectors.fetchUserRepositories

您也可以使用自定义角色或其他预定义角色来获取这些权限。

创建 BigQuery Studio Git 代码库

创建 Git 代码库时,请考虑以下要求:

  • 如果远程 Git 代码库未向公共互联网开放(例如,如果它位于防火墙后面),则将远程 Git 代码库连接到 Git 代码库可能会失败。在这种情况下,请将所需的 Dataform 出站 IP 地址范围 添加到防火墙规则中,以启用与受保护的远程代码库的连接。
  • 如需创建连接到 dataform.restrictGitRemotes 组织政策中未列入许可名单的远程 Git 代码库的 Git 代码库,请先将该远程 Git 代码库添加到相应政策的 allowedValues 列表中,然后再创建该 Git 代码库。如需了解详情,请参阅 限制远程代码库

如需创建 Git 代码库,请执行以下操作:

  1. 在 Cloud de Confiance 控制台中,前往 BigQuery 页面。

    转到 BigQuery

  2. 在左侧窗格中,点击 文件 以打开文件浏览器。

    如果您没有看到左侧窗格,请点击 展开左侧窗格 以打开该窗格。

  3. 在用户根节点旁边,依次点击 查看操作 > 创建 > Git 代码库

  4. 输入远程 Git 代码库的网址。

  5. BigQuery Studio 会检测是否存在现有的 Developer Connect 账号连接器 。您可以采取以下做法:

    • 如果找到账号连接器,系统会预先填充 Git 代码库的显示名称。您可以修改这些值。
    • 如果不存在账号连接器,请点击创建账号连接器 以创建新的账号连接器。
    • 如果您不想使用 Developer Connect 账号 连接器,请点击 使用其他连接类型使用 HTTPS 或 SSH 进行连接
  6. 点击连接

修改文件

如需修改文件,请点击文件节点(例如 SQL 脚本或笔记本),以在新编辑器标签页中打开该文件。

您所做的任何更改都会自动保存。

管理文件

您可以使用与每个项关联的操作菜单执行标准管理任务。如需访问这些选项,请点击 打开操作 旁边的任何目录或文件。

在目录级层,您可以执行以下任务:

  • 在代码库中创建:创建新的代码资产,包括 SQL 查询、 笔记本、数据画布、数据准备、文件或子目录。
  • 上传到代码库:将本地机器中的现有文件导入到 所选目录中。
  • 重命名:更改目录的名称。
  • 移动:重新定位目录。您只能将目录移动到同一 Git 代码库中的其他位置。如需了解详情,请参阅 移动或复制文件和目录
  • 删除:从您的 本地工作区中永久移除目录及其所有内容。

在文件级层,您可以执行以下任务:

  • 打开打开方式:在默认编辑器或 特定应用(例如特定笔记本环境)中查看文件。
  • 重命名:更改文件名。
  • 复制:创建文件的副本。您只能将文件复制到同一 Git 代码库中的目录。
  • 移动:将文件重新定位到同一 Git 代码库中的其他目录。 如需了解详情,请参阅 移动或复制文件和目录
  • 下载:将文件的副本保存到本地机器。
  • 删除:从工作区中移除文件。

移动或复制文件和目录

您可以移动或复制文件和目录,但它们必须保留在同一 Git 代码库中。

  1. 在 Cloud de Confiance 控制台中,前往 BigQuery 页面。

    转到 BigQuery

  2. 在左侧窗格中,点击 文件 以打开文件浏览器。

  3. 找到要移动或复制的文件或目录。

  4. 依次点击 打开操作 > 移动复制

  5. 在随即显示的对话框中,选择同一 Git 代码库中的目标目录。

  6. 点击移动复制

提交并推送更改

如需将本地修改与远程代码库同步,请执行以下操作:

  1. 在 Cloud de Confiance 控制台中,前往 BigQuery 页面。

    转到 BigQuery

  2. 在左侧窗格中,点击 代码库

  3. 可选:将鼠标悬停在修改后的文件上,然后点击查看差异 ,以查看本地版本与上次提交的版本之间的逐行比较。

  4. 提交消息 字段中,输入更改的说明。

  5. 点击提交 。您的更改将保存到本地分支的 Git 历史记录中。

  6. 点击推送到远程分支 。您的更改将与远程代码库同步。

检出新分支

您可以管理本地分支,并基于现有本地或远程跟踪分支创建新的本地分支。

代码库 标签页的分支 部分中,您可以查看已检出的本地分支。CURRENT 标签表示您的活跃分支,DEFAULT 标签表示代码库的默认分支。

如需检出新分支,请执行以下操作:

  1. 在 Cloud de Confiance 控制台中,前往 BigQuery 页面。

    转到 BigQuery

  2. 在左侧窗格中,点击 代码库

  3. 展开分支 部分。

  4. 点击分支旁边的 打开操作 ,然后点击检出新分支

  5. 源分支 菜单中,选择要作为新分支的基础的分支,例如 origin/main

  6. 分支名称 字段中,输入新分支的名称。

  7. 点击检出 。BigQuery Studio 会先检出源分支。如果提供的分支名称表示新分支,则系统会基于该来源创建新分支。新分支将成为活跃分支,并且 Git 代码库的内容会自动更新,以反映检出分支的状态。

访问 Git 代码库装载中的笔记本文件

当您从 BigQuery Studio Git 代码库中访问笔记本时,可以将宿主 Git 代码库装载到笔记本的运行时。装载是一种连接,可让您的远程 Git 代码库看起来像是笔记本运行时上的本地代码库。这样,您的笔记本就可以直接访问、读取和写入同一代码库中的其他文件和查询脚本。

装载 Git 代码库

如需装载 Git 代码库,请在笔记本中运行以下 Python 代码:

from google_dataform_fuse_widget import FuseWidget
FuseWidget()

当笔记本连接到装载时,会发生以下变化:

  • 笔记本会话的当前工作目录会更新,以反映其在 Git 代码库中的相对路径。这可确保基于路径的文件访问自动正常运行。
  • Git 代码库在笔记本运行时上的路径会添加到 Python 系统路径中,这样您就可以使用标准 Python 导入语句将查询脚本和文件从 Git 代码库直接加载到笔记本中。

管理装载和连接

使用以下控件管理工作区:

  • 装载工作区:启动 Git 代码库的装载过程。装载是共享资源,因此,如果同一 Colab 运行时上的多个笔记本使用同一 Git 代码库,则它们会使用同一装载。
  • 卸载工作区:停止 Git 代码库的装载过程。 卸载工作区后,该 Colab 运行时中所有使用该装载的笔记本都无法再使用该装载。
  • 连接工作区:启动与当前笔记本会话的活跃装载的连接。连接会更新笔记本的工作目录和系统路径以包含 Git 代码库,这样您就可以访问和导入文件。
  • 断开工作区连接:结束当前笔记本会话的装载连接,并将其重置为默认状态。断开连接不会影响其他活跃笔记本会话的装载连接状态。如需结束会话的连接,我们建议您使用断开工作区连接 按钮。
  • 修复:如果装载或连接变得 不可用,则将其恢复到正常状态。

初始化装载后,请参阅状态 栏,了解装载的实时运行状况和活跃路径。可能的运行状况包括 已连接已装载已停止运行状况不佳

后续步骤