管理已保存的查询

本文档介绍了如何管理已保存的查询和传统版已保存的查询,以及如何在 Dataplex 中管理已保存的查询元数据。

已保存的查询是由 Dataform 提供支持的 BigQuery Studio 代码资源。

准备工作

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

  1. 在项目中启用 BigQuery Studio

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

    在将公共或项目传统版已保存的查询迁移到 BigQuery Studio 已保存查询期间,请选择 BigQuery Studio 已保存查询,以将已授予该查询的权限复制到已迁移的已保存的查询。

  3. 如需在 Dataplex 中管理已保存的查询元数据,请确保已在您的 Google Cloud 项目中启用 Dataplex API

所需的角色

如需获得管理已存查询所需的权限,请让管理员向您授予您要管理已存查询的项目的以下 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 进行访问权限控制

如需在 Dataplex 中管理已保存的查询元数据,请确保您拥有所需的 Dataplex 角色dataform.repository.get 权限。

共享已保存的查询

如需与用户共享已保存的查询,您需要先向该用户授予对已保存查询的访问权限,然后将其添加到相应的 IAM 角色中。然后,您可以生成指向已保存查询的链接,并与用户共享该链接。

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

    转到 BigQuery

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

  3. 点击 分享,然后点击管理权限

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

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

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

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

  8. 点击保存

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

  10. 如需生成指向已保存查询的链接,请点击分享,然后点击获取链接

    该链接会复制到剪贴板。

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

您可以通过向 allAuthenticatedUsers 主账号授予已保存查询的 Code Viewer (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. 角色列表中,选择代码查看者角色。

  7. 点击保存

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

禁止公开访问已保存的查询

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

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

如果您在 iam.allowedPolicyMemberDomains 政策中限制 allAuthenticatedUsers,则无法在项目的任何 IAM 政策中使用 allAuthenticatedUsers 主账号,这会阻止授予对所有资源(包括 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

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

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

个人版传统版已保存的查询
个人的传统版已保存的查询仅对创建它们的用户可见。它们由 图标标识。个人的传统版已保存的查询只能由其所有者迁移。
公开的传统版已保存的查询

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

对公开的传统版已保存的查询的 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 已保存查询,并存储在所选区域中。
  • 将所有已迁移的传统版已保存的查询转换为只读传统版已保存的查询。

迁移后,您可以以 BigQuery Studio 保存的查询和只读传统版已保存的查询的形式访问个人、公开和项目传统版已保存的查询。

迁移风险

批量迁移后,您将无法修改已迁移的旧版已保存的查询。迁移后的个人、公共和项目传统版保存的查询将变为只读。

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 设置为主账号,并向其授予 Code Viewer 角色。如需了解详情,请参阅授予公开访问权限

    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. 点击删除

在 Dataplex 中管理元数据

借助 Dataplex,您可以存储和管理已存查询的元数据。默认情况下,Dataplex 中会提供已保存的查询,无需进行其他配置。

您可以使用 Dataplex 在所有已保存的查询位置管理已保存的查询。在 Dataplex 中管理已存查询需遵守 Dataplex 配额和限制以及 Dataplex 价格

Dataplex 会自动从已保存的查询中检索以下元数据:

  • 数据资产名称
  • 数据素材资源父级
  • 数据资产位置
  • 数据素材资源类型
  • 对应的 Google Cloud 项目

Dataplex 会将保存的查询作为条目记录在日志中,并包含以下条目值:

系统条目组
已保存查询的系统条目组@dataform。如需查看 Dataplex 中已保存的查询条目的详细信息,您需要查看 dataform 系统条目组。如需了解如何查看条目组中所有条目的列表,请参阅 Dataplex 文档中的查看条目组的详细信息
系统条目类型
已保存查询的系统条目类型dataform-code-asset。如需查看已保存查询的详细信息,您需要查看 dataform-code-asset 系统条目类型,使用基于方面过滤器过滤结果,并dataform-code-asset 方面内的 type 字段设置为 SQL_QUERY。然后,选择所选已保存查询的条目。 如需了解如何查看所选条目类型的详细信息,请参阅 Dataplex 文档中的查看条目类型的详细信息。如需了解如何查看所选条目的详细信息,请参阅 Dataplex 文档中的查看条目的详细信息
系统方面类型
保存的查询的系统方面类型dataform-code-asset
如需通过使用方面为数据保存的查询条目添加注释,从而为 Dataplex 中的已保存查询提供更多上下文信息,请查看 dataform-code-asset 方面类型,使用基于方面的过滤器过滤结果,并dataform-code-asset 方面内的 type 字段设置为 SQL_QUERY。如需了解如何使用方面为条目添加注解,请参阅 Dataplex 文档中的管理方面并丰富元数据
类型
已保存查询的类型为 SQL_QUERY。借助此类型,您可以使用基于方面过滤器中的 aspect:dataplex-types.global.dataform-code-asset.type=SQL_QUERY 查询过滤 dataform-code-asset 系统条目类型和 dataform-code-asset 方面类型中的已存查询。

如需了解如何在 Dataplex 中搜索资产,请参阅 Dataplex 文档中的在 Dataplex 中搜索数据资产

后续步骤