管理已保存的查询

本文档介绍了如何管理已保存的查询和传统版已保存的查询

已保存的查询

使用以下部分了解如何管理已保存的查询。已保存的查询是由 Dataform 提供支持的 BigQuery Studio 代码资源。

准备工作

如需管理 BigQuery Studio 保存的查询以及将传统版已保存的查询迁移到 BigQuery Studio 保存的查询,请执行以下操作:

  1. 在项目中启用 BigQuery Studio

  2. 可选:如需在迁移预览版)期间为已迁移的公有或项目级经典版已保存的查询设置 IAM 权限,请创建或选择一个 BigQuery Studio 已保存的查询,然后为该已保存的查询授予所选的 Identity and Access Management (IAM) 权限

    1. 将公共或项目传统版已保存的查询迁移到 BigQuery Studio 已保存的查询时,请选择一个 BigQuery Studio 已保存的查询,以将为其授予的权限复制到迁移的已保存的查询。

所需的角色

如需获得管理已保存查询所需的权限,请让管理员向您授予您要管理其已保存查询的项目的以下 IAM 角色:

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

这些预定义角色包含管理已保存查询所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需管理已保存的查询,您需要具备以下权限:

  • 如需在 Google Cloud 控制台中管理 BigQuery Studio 保存的查询,请执行以下操作: bigquery.config.get, bigquery.jobs.create, dataform.locations., resourcemanager.projects.get, resourcemanager.projects.list, bigquery.readsessions., dataform.repositories., dataform.workspaces.
  • 如需使用 BigQuery API 管理 BigQuery Studio 保存的查询,请执行以下操作: dataform.locations., dataform.repositories., dataform.workspaces.*, resourcemanager.projects.get, resourcemanager.projects.list
  • 如需将项目的传统版已保存的查询迁移到 BigQuery Studio 已保存的查询,请执行以下操作: bigquery.savedqueries.get, bigquery.savedqueries.list, bigquery.savedqueries.update, resourcemanager.projects.setIamPolicy
  • 如需允许经过身份验证的用户查看公开访问查询,请执行以下操作: dataform.locations.*, dataform.repositories.computeAccessTokenStatus, dataform.repositories.fetchHistory, dataform.repositories.fetchRemoteBranches, dataform.repositories.get, dataform.repositories.getIamPolicy, dataform.repositories.list, dataform.repositories.queryDirectoryContents, dataform.repositories.readFile, dataform.workspaces.fetchFileDiff, dataform.workspaces.fetchFileGitStatuses, dataform.workspaces.fetchGitAheadBehind. dataform.workspaces.get, dataform.workspaces.getIamPolicy, dataform.workspaces.list, dataform.workspaces.queryDirectoryContents, dataform.workspaces.readFile, dataform.workspaces.searchFiles, resourcemanager.projects.get, resourcemanager.projects.list

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

如需详细了解 BigQuery IAM,请参阅使用 IAM 进行访问权限控制

授予对已保存查询的访问权限

如需向其他用户授予对已保存查询的访问权限,请将这些用户添加到相应的 IAM 角色。

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

    转到 BigQuery

  2. 探索器窗格中,展开您的项目和查询文件夹,然后根据需要展开共享查询文件夹。找到要授予其访问权限的已保存查询。

  3. 点击已保存的查询旁边的 查看操作,然后点击共享 > 管理权限

  4. 管理权限窗格中,点击添加用户/群组

  5. 新的主账号字段中,输入主账号。

  6. 角色列表中,选择以下角色之一:

    • Code Owner:可以对已保存的查询执行任何操作,包括删除或共享已保存的查询。
    • Code Editor:可以修改查询。
    • Code Viewer:可以查看查询。
  7. 可选:如需查看角色和高级共享设置的完整列表,请点击高级共享

  8. 点击保存

  9. 如需恢复为已保存的查询信息,请点击关闭

共享已保存的查询

您可以通过生成并共享指向已保存查询的链接来与其他用户共享已保存的查询。您必须先授予用户访问已保存查询的权限,这些用户才能查看您共享的查询。

要运行共享查询,用户必须有权访问相应查询所访问的数据。如需了解详情,请参阅授予对数据集的访问权限

如果您打算共享已保存的查询,请考虑在查询中添加描述其用途的注释。

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

    转到 BigQuery

  2. 探索器窗格中,展开您的项目和查询文件夹,然后根据需要展开共享查询文件夹。找到您要共享的已保存查询。

  3. 点击查询旁边的 查看操作,然后点击共享 > 复制链接

  4. 与其他用户共享该链接。

向已保存的查询授予公开访问权限

您可以向 allAuthenticatedUsers 主账号授予已保存查询的“代码查看器”(roles/dataform.codeViewer) 角色,以向其授予对 BigQuery Studio 已保存查询的公开访问权限。

allAuthenticatedUsers 正文分配 IAM 角色后,服务账号和已使用 Google 账号进行身份验证的互联网上的所有用户都会获得该角色。这包括未关联到 Google Workspace 账号或 Cloud Identity 网域的账号,如个人 Gmail 账号。不包括未经身份验证的用户,例如匿名访问者。如需了解详情,请参阅所有经过身份验证的用户

例如,如果您向 sales 已保存查询的 allAuthenticatedUsers 授予 Code Viewer 角色,则互联网上所有使用 Google 账号进行身份验证的服务账号和用户都将对 sales 已保存查询拥有只读访问权限。

如需向 BigQuery Studio 保存的查询授予公共访问权限,请执行以下操作:

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

    转到 BigQuery

  2. 探索器窗格中,展开您的项目和查询文件夹,然后根据需要展开共享查询文件夹。找到要授予公开访问权限的已保存查询。

  3. 点击已保存的查询旁边的 查看操作,然后点击共享 > 管理权限

  4. 管理权限窗格中,点击添加用户/群组

  5. 新的主账号字段中,输入 allAuthenticatedUsers

  6. 角色列表中,选择 Code Viewer 角色。

  7. 点击保存

  8. 如需恢复为已保存的查询信息,请点击关闭

阻止对已保存查询的公开访问

为确保不向任何 BigQuery Studio 已保存的查询授予公共访问权限,请限制项目中的 allAuthenticatedUsers 正文。

如需在项目中限制 allAuthenticatedUsers,您可以设置 iam.allowedPolicyMemberDomains 政策,并从 allowed_values 列表中移除 allAuthenticatedUsers

当您在 iam.allowedPolicyMemberDomains 政策中限制 allAuthenticatedUsers 时,allAuthenticatedUsers 正文将无法在项目中的任何 IAM 政策中使用,这会阻止向所有资源(包括 BigQuery Studio 保存的查询)授予公共访问权限。

如需详细了解 iam.allowedPolicyMemberDomains 政策以及设置说明,请参阅按网域限制身份

查看所有已保存的查询

如需查看项目中所有已保存的查询的列表,请执行以下操作:

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

    转到 BigQuery

  2. 探索器窗格中,点击查询旁边的 查看操作,然后执行以下操作之一:

  • 如需在当前标签页中打开该列表,请点击全部显示
  • 如需在新标签页中打开该列表,请点击在以下位置全部显示 > 新标签页
  • 如需在拆分标签页中打开该列表,请点击在以下位置全部显示 > 拆分标签页

查看已保存的查询元数据

如需查看已保存的查询元数据,请执行以下操作:

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

    转到 BigQuery

  2. 探索器窗格中,展开您的项目和查询文件夹,然后根据需要展开共享查询文件夹。点击要查看其元数据的已保存查询的名称。

  3. 查看摘要窗格,查看有关已保存查询的信息,例如其使用的区域和上次修改日期。

使用已保存的查询版本

使用以下部分了解如何查看、比较和恢复已保存查询的版本。

查看已保存的查询版本

如需查看已保存的查询版本,请执行以下操作:

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

    转到 BigQuery

  2. 探索器窗格中,展开您的项目和查询文件夹,然后根据需要展开共享查询文件夹。点击要查看其活动的已保存查询的名称。

  3. 点击活动标签页,按日期查看已保存查询版本的列表(按降序排列)。

比较已保存的查询版本

如需比较已保存的查询版本,请执行以下操作:

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

    转到 BigQuery

  2. 探索器窗格中,展开您的项目和查询文件夹,然后根据需要展开共享查询文件夹。点击要比较其版本信息的已保存查询的名称。

  3. 活动标签页中,点击已保存的查询版本旁边的 查看操作,然后点击比较。此时会打开比较窗格,将您选择的已保存查询版本与当前已保存查询版本进行比较。

  4. 可选:当前已保存查询版本还会显示未保存的更改。如要保存这些更改,请点击覆盖

  5. 可选:如需以内嵌方式(而不是在单独的窗格中)比较版本,请点击比较,然后点击内嵌

恢复已保存的查询版本

使用以下任一选项来恢复已保存的查询版本。通过从比较窗格中恢复数据,您可以在选择是否恢复之前将已保存查询的先前版本与当前版本进行比较。

“活动”窗格

  1. 探索器窗格中,展开您的项目和查询文件夹,然后根据需要展开共享查询文件夹。点击要恢复其旧版本的查询的名称。
  2. 选择活动窗格。
  3. 点击要恢复的已保存查询版本旁边的 查看操作,然后点击恢复
  4. 点击确认以确认操作。

“比较”窗格

  1. 探索器窗格中,展开您的项目和查询文件夹,然后根据需要展开共享查询文件夹。点击要恢复其旧版本的查询的名称。
  2. 选择活动窗格。
  3. 点击已保存的查询版本旁边的 查看操作,然后点击比较。此时会打开比较窗格,将您选择的已保存查询版本与最新的已保存查询版本进行比较。
  4. 如果要在比较后恢复之前保存的查询版本,请点击恢复
  5. 点击确认以确认操作。

下载已保存的查询

如需下载已保存的查询,请执行以下操作:

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

    转到 BigQuery

  2. 探索器窗格中,展开您的项目和查询文件夹,然后根据需要展开共享查询文件夹。点击已保存的查询名称将其打开。

  3. 点击下载

删除已保存的查询

如需删除已保存的查询,请执行以下操作:

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

    转到 BigQuery

  2. 探索器窗格中,展开您的项目和查询文件夹,然后根据需要展开共享查询文件夹。找到您要删除的已保存查询。

  3. 点击已保存的查询旁边的 查看操作,然后点击删除

  4. 如需确认删除,请在对话框中输入 delete

  5. 点击删除

传统版已保存的查询

请参阅以下部分,了解如何管理传统版已保存查询

共享传统版已保存查询

您可以共享公开范围为“项目”或“公开”的传统版查询。如果将公开范围设置为“项目”,则其具备所需权限的主账号可以查看、更新或删除该查询。如果将公开范围设置为“公开”,则任何知道查询链接的人员都可以查看该查询,但无法执行更新或删除操作。

您可以通过生成并共享指向传统版已保存查询的链接来与其他用户共享传统版已保存查询。

如需运行传统版共享查询,用户必须有权访问相应查询所访问的数据。如需了解详情,请参阅授予对数据集的访问权限

如果您打算共享传统版已保存查询,请考虑在查询中添加描述其用途的注释。

  1. 探索器窗格中,展开您的项目和(传统版)查询文件夹,然后找到您要共享的传统版已保存查询。
  2. 点击查询旁边的 查看操作,然后点击获取链接
  3. 与要授予查询访问权限的用户共享链接。

将传统版查询另存为已保存的查询

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

    转到 BigQuery

  2. 探索器窗格中,展开您的项目和(传统版)查询文件夹,然后根据需要展开项目查询文件夹。

  3. 点击一个已保存的传统查询的名称将其打开。

  4. 点击 保存查询(传统版)> 将查询另存为...

  5. 保存查询对话框中,输入名称并选择查询的位置。

  6. 点击保存

迁移传统版已保存查询

如需针对此功能请求支持或提供反馈,请发送电子邮件至 bigquery-studio-support-alias@google.com

如需批量迁移传统版已保存的查询,您必须获得所需的角色。这些角色授予的权限决定了您可以迁移的传统保存的查询类型。

您可以批量迁移以下传统版已保存的查询:

个人传统版已保存的查询
个人的传统版已保存的查询仅对创建它们的用户可见。它们由 图标标识。只有所有者才能迁移个人的传统版已保存的查询。被授予对迁移的 BigQuery Studio 已保存的查询的访问权限的管理员和用户或许可以访问、修改或删除个人已保存的查询。
公开的传统版已保存的查询

公开的传统版已保存的查询对知道查询链接的任何人都可见。它们由 图标标识。只有所有者才能迁移公开的传统版已保存的查询。

传统版公共已保存的查询的 IAM 权限不会映射到 BigQuery Studio 已保存的查询的权限。这意味着,从公共传统版已保存的查询迁移的 BigQuery Studio 已保存的查询默认情况下不会公开提供。您需要在迁移期间或迁移后为迁移的 BigQuery Studio 保存的查询设置 IAM 权限。

如需在迁移期间为迁移的 BigQuery Studio 保存的查询设置 IAM 权限,您可以选择具有要应用于迁移的保存的查询的权限的现有 BigQuery Studio 保存的查询。BigQuery 会复制为所选 BigQuery Studio 已保存的查询授予的权限,并将其应用于迁移的已保存的查询。您还可以手动添加要与之共享已迁移的已保存查询的用户或群组。

如果您在迁移期间未设置 IAM 权限,则只有您可以访问迁移的 BigQuery Studio 保存的查询。

项目传统版已保存的查询

项目级已保存的查询对拥有所需权限的主账号可见。它们由 图标标识。您可以批量迁移项目中的所有传统版项目已保存查询。

项目传统版已保存的查询的 IAM 权限不会直接映射到 BigQuery Studio 已保存的查询的权限。您需要在迁移期间或迁移后为迁移的 BigQuery Studio 保存的查询设置 IAM 权限。

如需在迁移期间为迁移的 BigQuery Studio 保存的查询设置 IAM 权限,您可以选择具有要应用于迁移的保存的查询的权限的现有 BigQuery Studio 保存的查询。BigQuery 会复制为所选 BigQuery Studio 已保存的查询授予的权限,并将其应用于迁移的已保存的查询。您还可以手动添加要与之共享已迁移的已保存查询的用户或群组。

如果您在迁移期间未设置 IAM 权限,则只有您可以访问迁移的 BigQuery Studio 保存的查询。

在批量迁移传统版已保存的查询期间,BigQuery 会执行以下操作:

  • 将所有要迁移的传统版已保存的查询都保存为 BigQuery Studio 已保存的查询,并存储在所选区域中。
  • 将所有迁移的传统版已保存的查询转换为只读的传统版已保存的查询(可用至 2025 年)。

迁移后,您可以将个人、公共和项目传统版已保存的查询作为 BigQuery Studio 已保存的查询和只读传统版已保存的查询进行访问。传统版已保存的查询(只读)将在 2025 年之前可用。

迁移风险

批量迁移后,您将无法修改已迁移的传统已保存搜索查询。迁移后的个人、公共和项目传统版已保存查询将变为只读。只读个人、公共和项目传统版已保存的查询将在 2025 年之前可用。

BigQuery 将使用 Dataform API 将迁移的 BigQuery Studio 已保存的查询添加到您的 Google Cloud 项目中。还原这些更改需要执行手动清理操作。

批量迁移传统版已保存的查询

如需将项目中的传统版已保存的查询批量迁移到 BigQuery Studio 已保存的查询,请执行以下操作:

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

    转到 BigQuery

  2. 探索器窗格中,展开您的项目,然后点击(传统版)查询旁边的 查看操作,接着点击迁移传统版已保存的查询

  3. 传统版已保存的查询迁移窗格中的检查迁移准备情况部分,点击下一步以确认您拥有所需的角色

    您的 IAM 权限决定了您可以迁移哪些类型的传统版已保存的查询,以及您可以看到传统版已保存的查询迁移窗格的哪些部分。

  4. 区域部分的区域下拉菜单中,选择 BigQuery 将存储已迁移的已保存查询的区域。

    我们建议您为 BigQuery Studio 代码资产选择默认区域。 如需了解详情,请参阅设置代码资源的默认区域

  5. 如需迁移所有个人传统版已保存的查询,请在迁移个人查询部分中,选中迁移所有个人查询复选框,然后点击下一步

  6. 如需迁移项目中的所有公共传统版已保存的查询,请在迁移公共查询部分执行以下操作:

    1. 选中迁移所有公共查询复选框。
    2. SQL 下拉菜单中,选择一个 BigQuery Studio 已保存的查询,其中包含您要应用于迁移后的已保存查询的 IAM 政策。
    3. 可选:如需添加要与其共享已迁移的已保存搜索查询的用户或群组,请点击添加用户/群组,然后点击授予对已保存搜索查询的访问权限

      如需公开共享已迁移的已保存查询,请将 allAuthenticatedUsers 设置为主账号,并为其授予“代码查看者”角色。如需了解详情,请参阅授予公开访问权限

    4. 点击下一步

  7. 如需迁移项目级传统版已保存的查询,请在迁移项目查询部分执行以下操作:

    1. 选中迁移所有项目查询复选框。
    2. SQL 下拉菜单中,选择一个 BigQuery Studio 已保存的查询,其中包含您要应用于迁移后的已保存查询的 IAM 政策。
    3. 可选:如需添加要与其共享已迁移的已保存搜索查询的用户或群组,请点击添加用户/群组,然后点击授予对已保存搜索查询的访问权限
    4. 点击下一步
  8. 如需确认您已了解迁移风险,并且您希望批量迁移传统版已保存的查询,请在确认部分的确认字段中输入 confirm,然后点击下一步

  9. 点击提交

迁移过程可能需要超过 15 分钟,具体取决于要迁移的查询数量。

删除传统版已保存查询

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

    转到 BigQuery

  2. 探索器窗格中,展开您的项目和(传统版)查询文件夹,然后根据需要展开项目查询文件夹。

  3. 找到您要删除的传统版已保存查询。

  4. 点击查询旁边的 查看操作,然后点击删除

  5. 如需确认删除,请在对话框中输入 delete

  6. 点击删除

后续步骤