列出表快照

本文档介绍如何通过查询 INFORMATION_SCHEMA.TABLE_SNAPSHOTS 表、使用 bq ls 命令或者调用 tables.list API 在 Google Cloud Console 中获取 BigQuery 数据集中的表快照。此外还介绍如何通过查询 INFORMATION_SCHEMA.TABLE_SNAPSHOTS 表来列出指定基表的所有表快照。本文档适用于熟悉 BigQuery 表快照的用户。

权限和角色

本部分介绍列出数据集中的表快照所需的 Identity and Access Management (IAM) 权限以及授予这些权限的预定义 IAM 角色。列出表快照所需的权限和角色与列出其他类型的表所需的权限和角色相同。

权限

如需列出数据集中的表快照,您需要以下权限:

权限 资源
bigquery.tables.list 包含表快照的数据集。

角色

提供所需权限的预定义 BigQuery 角色如下所示:

角色 资源
以下任意一项:

bigquery.dataUser
bigquery.dataViewer
bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
包含表快照的数据集。

列出数据集中的表快照

获取数据集中的表快照的列表与列出其他类型的表类似。表快照的类型为 SNAPSHOT

您可以使用以下选项之一列出表快照:

控制台

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

    转到 BigQuery

  2. 浏览器窗格中,展开要列出其表快照的数据集的项目和数据集节点。

  3. 您可以在数据集中使用图标来识别表快照。

    表快照图标

SQL

查询 INFORMATION_SCHEMA.TABLE_SNAPSHOTS 视图

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

    转到 BigQuery

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

    SELECT
      *
    FROM
      PROJECT_ID.DATASET_NAME.INFORMATION_SCHEMA.TABLE_SNAPSHOTS;

    请替换以下内容:

    • PROJECT_ID:包含要列出的快照的项目的 ID。
    • DATASET_NAME:包含要列出的快照的数据集的名称。

  3. 点击 运行

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

输出类似于以下内容:

+---------------+----------------+------------------+--------------------+-------------------+-----------------+-----------------------------+
| table_catalog | table_schema   | table_name       | base_table_catalog | base_table_schema | base_table_name | snapshot_time               |
+---------------+----------------+------------------+--------------------+-------------------+-----------------+-----------------------------+
| myproject     | mydataset      | mysnapshot       | basetableproject   | basetabledataset           | basetable           | 2021-04-16 14:05:27.519 UTC |
+---------------+----------------+------------------+--------------------+-------------------+-----------------+-----------------------------+

bq

在 Cloud Shell 中输入以下命令:

转到 Cloud Shell

bq ls \
PROJECT_ID:DATASET_NAME

请替换以下内容:

  • PROJECT_ID:包含要列出的快照的项目的 ID。
  • DATASET_NAME:包含要列出的快照的数据集的名称。

输出类似于以下内容:

+-------------------------+--------+---------------------+-------------------+
|         tableId         |  Type  |       Labels        | Time Partitioning |
+-------------------------+--------+---------------------+-------------------+
| mysnapshot              |SNAPSHOT|                     |                   |
+-------------------------+--------+---------------------+-------------------+

API

使用以下参数调用 tables.list 方法:

参数
projectId 包含要列出的快照的项目的 ID。
datasetId 包含要列出的快照的数据集的名称。

列出指定基表的表快照

您可以通过查询 INFORMATION_SCHEMA.TABLE_SNAPSHOTS 视图来列出指定基表的快照:

SELECT
  *
FROM
  PROJECT_ID.DATASET_NAME.INFORMATION_SCHEMA.TABLE_SNAPSHOTS
WHERE
  base_table_name = 'books';
  

请替换以下内容:

  • PROJECT_ID:包含要列出的快照的项目的 ID。
  • DATASET_NAME:包含要列出的快照的数据集的名称。

后续步骤