恢复已删除的数据集

本文档介绍了如何在 BigQuery 中恢复(或取消删除)已删除的数据集。

您可以恢复删除的数据集,以将其恢复到删除时的状态。您只能恢复处于时间旅行窗口内的数据集。这种恢复包括数据集中包含的所有对象、数据集属性和安全设置。对于未恢复的资源,请参阅限制

如需了解如何恢复已删除的表或快照,请参阅以下资源:

限制

以下是与恢复数据集相关的限制列表:

  • 恢复的数据集可能会引用不再存在的安全主体。
  • 执行此操作时,系统不会恢复对关联数据集中已删除数据集的引用。订阅方必须重新订阅才能手动恢复链接。
  • 执行此操作不会恢复商家标记。
  • 您必须手动刷新具体化视图并向已获授权的视图已获授权的数据集已获授权的例程重新授权。
  • 启用了 CDC 的 BigQuery 表在作为未删除的数据集的一部分恢复后,不会恢复后台应用作业。

    删除已获授权的资源(视图、数据集和例程)后,最长可能需要 24 小时才能删除授权。因此,如果您在删除后 24 小时内对包含已获授权的资源的数据集执行恢复操作,则可能不需要重新授权。最佳实践是始终在恢复资源后验证授权。

准备工作

确保您拥有恢复已删除数据集的必要 Identity and Access Management (IAM) 权限。

所需的角色

如需获得恢复已删除的数据集所需的权限,请让您的管理员为您授予项目的 BigQuery User (roles/bigquery.user) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色包含恢复已删除的数据集所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

恢复已删除的数据集需要以下权限:

  • 针对项目的 bigquery.datasets.create 权限
  • 针对数据集的 bigquery.datasets.get 权限

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

恢复数据集

如需恢复数据集,请选择以下选项之一:

SQL

使用 UNDROP SCHEMA 数据定义语言 (DDL) 语句

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

    转到 BigQuery

  2. 在查询编辑器中,输入以下语句:

    UNDROP SCHEMA DATASET_ID;

    DATASET_ID 替换为您要执行恢复删除操作的数据集。

  3. 指定您要执行恢复删除操作的数据集的位置

  4. 点击 运行

如需详细了解如何运行查询,请参阅运行交互式查询

API

调用 datasets.undelete 方法

恢复数据集时,可能会出现以下错误:

  • ALREADY_EXISTS:您尝试在其中执行恢复操作的区域中已存在同名的数据集。您无法使用恢复删除来覆盖或合并数据集。
  • NOT_FOUND:您尝试恢复的数据集已超过其时间旅行窗口、从未存在,或者您未指定数据集的正确位置
  • ACCESS_DENIED:您没有对此数据集执行恢复删除操作所需的权限

    后续步骤

  • 如需了解如何查询某个时间点的数据,请参阅访问历史数据

  • 如需了解数据保留,请参阅使用时间旅行和故障安全功能保留数据

  • 如需了解如何删除数据集,请参阅管理数据集