创建代码库

本文档介绍了如何在 BigQuery 中处理代码库,包括以下任务:

  • 创建代码库
  • 删除代码库
  • 共享代码库
  • 可选地将 BigQuery 代码库连接到第三方代码库

准备工作

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the BigQuery and Dataform APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the BigQuery and Dataform APIs.

    Enable the APIs

所需的角色

如需获得使用代码库和工作区的所需权限,请让您的管理员向您授予代码库和工作区的以下 IAM 角色:

  • 创建和管理共享代码库:Code Owner (roles/dataform.codeOwner)
  • 在共享代码库中创建和删除工作区:Code Editor (roles/dataform.codeEditor)
  • 在共享代码库的工作区中创建、修改和版本控制文件:Code Editor (roles/dataform.codeEditor)
  • 在共享代码库中查看工作区及其文件:Code Viewer (roles/dataform.codeViewer)
  • 创建和管理私有代码库,包括对私有代码库中工作区和文件执行的所有操作:Code Creator (roles/dataform.codeCreator)

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

在代码库中拥有 Code Editor 角色的主账号可以修改代码库中的所有工作区。

您创建的私有代码库仍然对在项目级别被授予 BigQuery Admin 或 BigQuery Studio Admin 角色的正文可见。这些正文可以与其他用户共享您的私有代码库。

创建代码库

如需创建 BigQuery 代码库,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  2. 探索器窗格中,点击 Repositories 文件夹。

  3. 在编辑器中,点击添加代码库

  4. 创建代码库窗格的代码库 ID 字段中,输入一个唯一 ID。

    ID 只能包含数字、字母、连字符和下划线。

  5. 区域下拉列表中,选择用于存储代码库及其内容的 BigQuery 区域。选择离您最近的 BigQuery 区域。

    如需查看可用 BigQuery 区域的列表,请参阅 BigQuery Studio 位置。代码库区域不必与 BigQuery 数据集所在的位置相同。

  6. 点击创建

连接到第三方代码库

本部分介绍了如何将 BigQuery 代码库连接到远程代码库。连接代码库后,您可以对代码库包含的工作区中的文件执行 Git 操作。例如,从远程代码库拉取更新,以及将更改推送到远程代码库。

我们建议为您连接到的每个远程代码库创建一个专用 BigQuery 代码库。为 BigQuery 代码库指定与远程代码库类似的名称,以便清晰地显示映射。

您可以通过 HTTPS 或 SSH 连接远程代码库。下表列出了支持的 Git 提供程序及其代码库支持的连接方法:

Git 提供商 连接方法
Azure DevOps 服务 SSH
Bitbucket SSH
GitHub SSH 或 HTTPS
GitLab SSH 或 HTTPS

通过 SSH 连接远程代码库

如需通过 SSH 连接远程代码库,您必须生成 SSH 密钥和 Secret Manager 密钥。SSH 密钥由 SSH 公钥和 SSH 私钥组成。您必须与 Git 提供商共享 SSH 公钥,并使用 SSH 私钥创建 Secret Manager Secret。然后,与您的默认 BigQuery 服务账号共享该密钥。

BigQuery 会使用包含私钥 SSH 密钥的密钥登录您的 Git 提供方,以代表用户提交更改。BigQuery 会使用用户的 Google Cloud 电子邮件地址进行这些提交,以便您了解是哪位用户进行了每项提交。

如需通过 SSH 将远程代码库连接到 BigQuery 代码库,请按以下步骤操作:

  1. 在 Git 提供程序中,执行以下操作:

    Azure DevOps 服务

    1. 在 Azure DevOps Services 中,创建 SSH 私钥
    2. 将 SSH 公钥上传到您的 Azure DevOps Services 代码库。

    Bitbucket

    1. 在 Bitbucket 中,创建 SSH 私钥
    2. 将 SSH 公钥上传到您的 Bitbucket 代码库。

    GitHub

    1. 在 GitHub 中,检查现有 SSH 密钥
    2. 如果您没有任何现有 SSH 密钥,或者想使用新密钥,请创建 SSH 私钥
    3. GitHub 公钥 SSH 密钥上传到您的 GitHub 代码库。

    GitLab

    1. 在 GitLab 中,创建 SSH 私钥
    2. GitLab 公钥上传到您的 GitLab 代码库。
  2. 在 Secret Manager 中,创建 Secret,并将 SSH 私钥粘贴为 Secret 值。您的 SSH 私钥应存储在类似 ~/.ssh/id_ed25519 的文件中。为 Secret 命名,以便日后查找。

  3. 向您的默认 Dataform 服务账号授予对 Secret 的访问权限

    默认的 Dataform 服务账号采用以下格式:

    service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    
  4. roles/secretmanager.secretAccessor 角色授予服务账号。

  5. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  6. 探索器窗格中,展开代码库文件夹。

  7. 选择要连接到远程代码库的 BigQuery 代码库。

  8. 在编辑器中,选择 Configuration(配置)标签页。

  9. 点击与 Git 建立连接

  10. 连接到远程代码库窗格中,选择 SSH 单选按钮。

  11. Remote Git repository 网址(远程 Git 代码库网址)字段中,输入以 .git 结尾的远程 Git 代码库的网址。

    远程 Git 代码库的网址必须采用以下某种格式:

    • 绝对网址:ssh://git@{host_name}[:{port}]/{repository_path}port 为可选项。
    • 类似 SCP 的网址:git@{host_name}:{repository_path}
  12. 默认远程分支名称字段中,输入远程 Git 代码库的主分支的名称。

  13. 密钥下拉菜单中,选择您创建的包含 SSH 私钥的密钥。

  14. SSH 主机公钥值字段中,输入 Git 提供商的主机公钥。

    Azure DevOps 服务

    SSH 主机公钥值必须采用 known_hosts 文件格式。该值必须包含采用 base64 格式编码的算法和公钥,但不包含主机名或 IP,格式如下:

    ALGORITHM BASE64_KEY_VALUE
    

    如需检索 Azure DevOps Services 公共主机密钥,请在终端中运行 ssh-keyscan -t rsa ssh.dev.azure.com 命令。

    Bitbucket

    SSH 主机公钥值必须采用 known_hosts 文件格式。该值必须包含采用 base64 格式编码的算法和公钥,但不包含主机名或 IP,格式如下:

    ALGORITHM BASE64_KEY_VALUE
    

    如需检索 Bitbucket 公共主机密钥,请参阅配置 SSH

    GitHub

    SSH 主机公钥值必须采用 known_hosts 文件格式。该值必须包含采用 base64 格式编码的算法和公钥,但不包含主机名或 IP,格式如下:

    ALGORITHM BASE64_KEY_VALUE
    

    如需检索 GitHub 公有主机密钥,请参阅 GitHub 的 SSH 密钥指纹

    GitLab

    SSH 主机公钥值必须采用 known_hosts 文件格式。该值必须包含采用 base64 格式编码的算法和公钥,但不包含主机名或 IP,格式如下:

    ALGORITHM BASE64_KEY_VALUE
    

    如需检索 GitLab 公有主机密钥,请参阅 SSH known_hosts 条目

  15. 点击连接

通过 HTTPS 连接远程代码库

如需通过 HTTPS 连接远程代码库,您必须使用个人访问令牌创建 Secret Manager 密钥,并与默认的 BigQuery 服务账号共享该密钥。

然后,BigQuery 使用该访问令牌登录您的 Git 提供程序,以代表用户提交更改。BigQuery 会使用用户的 Google Cloud 电子邮件地址进行这些提交,以便您了解是谁进行了每项提交。

如需通过 HTTPS 将远程代码库连接到 BigQuery 代码库,请按以下步骤操作:

  1. 在 Git 提供程序中,执行以下操作:

    GitHub

    1. 在 GitHub 中,创建精细的个人访问令牌传统的个人访问令牌

      • 对于精细的 GitHub 个人访问令牌,请执行以下操作:
      1. 选择“仅限于选定的代码库”代码库访问权限,然后选择要连接到的代码库。

      2. 授予对代码库内容的读写权限。

      3. 根据您的需求设置令牌到期时间。

      • 对于传统的 GitHub 个人访问令牌,请执行以下操作:
      1. 向 BigQuery 授予 repo 权限。

      2. 根据您的需求设置令牌到期时间。

    2. 如果贵组织使用 SAML 单点登录 (SSO),请授权令牌

    GitLab

    1. 在 GitLab 中,创建一个 GitLab 个人访问令牌

    2. 将令牌命名为 dataform;这是必需的。

    3. 向 BigQuery 授予 apiread_repositorywrite_repository 权限。

    4. 根据您的需求设置令牌到期时间。

  2. 在 Secret Manager 中,创建一个 Secret,其中包含远程代码库的个人访问令牌。

  3. 向您的默认 Dataform 服务账号授予对 Secret 的访问权限

    默认的 Dataform 服务账号采用以下格式:

    service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    
  4. roles/secretmanager.secretAccessor 角色授予服务账号。

  5. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  6. 探索器窗格中,展开代码库文件夹。

  7. 选择要连接到远程代码库的 BigQuery 代码库。

  8. 在编辑器中,选择 Configuration(配置)标签页。

  9. 点击与 Git 建立连接

  10. 连接到远程代码库窗格中,选择 HTTPS 单选按钮。

  11. Remote Git repository 网址(远程 Git 代码库网址)字段中,输入以 .git 结尾的远程 Git 代码库的网址。

    远程 Git 代码库的网址不得包含用户名或密码。

  12. 默认远程分支名称字段中,输入远程 Git 代码库的主分支的名称。

  13. 密钥下拉菜单中,选择您创建的包含个人访问令牌的密钥。

  14. 点击连接

修改远程代码库连接

如需修改 BigQuery 代码库与远程 Git 代码库之间的连接,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  2. 探索器窗格中,展开代码库文件夹。

  3. 选择您要修改连接的 BigQuery 代码库。

  4. 在编辑器中,选择 Configuration(配置)标签页。

  5. 在代码库页面上,点击修改 Git 连接

  6. 修改连接设置。

  7. 点击更新

共享代码库

如需共享代码库,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  2. 探索器窗格中,点击 Repositories 文件夹。

  3. Git 代码库窗格中,选择要共享的代码库。

  4. 点击 操作选项,然后点击分享

  5. 共享权限窗格中,点击添加用户/群组

  6. 添加用户/群组窗格中的新主账号字段中,输入一个或多个用户或群组名称(以英文逗号分隔)。

  7. 角色字段中,选择要分配给新主账号的角色。

  8. 点击保存

删除代码库

如需删除代码库及其所有内容,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  2. 探索器窗格中,点击 Repositories 文件夹。

  3. Git 代码库窗格中,选择要删除的代码库。

  4. 点击 操作选项,然后点击删除

  5. 点击删除

后续步骤