查看表快照元数据
本文档介绍如何通过 Google Cloud 控制台、查询 INFORMATION_SCHEMA 表的 TABLE_SNAPSHOTS 视图、使用 bq show 命令或调用 tables.get API 来查看 BigQuery 表快照的元数据。本文档适用于熟悉 BigQuery 表和表快照的用户。
权限和角色
本部分介绍查看表快照的元数据所需的 Identity and Access Management (IAM) 权限以及包含这些权限的预定义 IAM 角色。
权限
如需查看表快照的元数据,您需要以下权限:
| 权限 | 资源 | 
|---|---|
bigquery.tables.get
  
 | 
表快照 | 
角色
提供所需权限的预定义 BigQuery 角色如下所示:
| 角色 | 资源 | 
|---|---|
以下任意一项:bigquery.metadataViewerbigquery.dataViewerbigquery.dataEditorbigquery.dataOwnerbigquery.admin
 | 
表快照 | 
获取表快照的元数据
表快照的元数据与标准表的元数据类似,但存在以下差异:
- 附加的 
baseTableReference字段用于标识创建快照的基表。 type字段的值为SNAPSHOT。
您可以使用以下选项之一来查看表快照的元数据:
控制台
在 Google Cloud 控制台中,前往 BigQuery 页面。
在左侧窗格中,点击 探索器:

如果您没有看到左侧窗格,请点击 展开左侧窗格以打开该窗格。
在探索器窗格中,展开您的项目,点击数据集,然后点击包含表快照的数据集。
依次点击概览 > 表,然后点击表快照的名称。
在显示的快照窗格中,您可以执行以下操作:
点击架构标签页,查看表快照的架构和政策标记。
点击详细信息表以查看表快照的大小、到期时间、基表、快照时间以及其他信息。
SQL
如需查看表快照的元数据,请查询 INFORMATION_SCHEMA.TABLE_SNAPSHOTS 视图:
在 Google Cloud 控制台中,前往 BigQuery 页面。
在查询编辑器中,输入以下语句:
SELECT * FROM PROJECT_ID.DATASET_NAME.INFORMATION_SCHEMA.TABLE_SNAPSHOTS WHERE table_name = 'SNAPSHOT_NAME';
请替换以下内容:
PROJECT_ID:包含该快照的项目的 ID。DATASET_NAME:包含该快照的数据集的名称。SNAPSHOT_NAME:快照的名称。
点击 运行。
如需详细了解如何运行查询,请参阅运行交互式查询。
bq
在 Cloud Shell 中输入以下命令:
bq show \ --format=prettyjson \ PROJECT_ID:DATASET_NAME.SNAPSHOT_NAME
请替换以下内容:
PROJECT_ID:包含该快照的项目的 ID。DATASET_NAME:包含该快照的数据集的名称。SNAPSHOT_NAME:快照的名称。
输出类似于以下内容:
{ "creationTime": "1593194331936", ... "snapshotDefinition": { "baseTableReference": { "datasetId": "myDataset", "projectId": "myProject", "tableId": "mytable" }, "snapshotTime": "2020-06-26T17:58:50.815Z" }, "tableReference": { "datasetId": "otherDataset", "projectId": "myProject", "tableId": "mySnapshot" }, "type": "SNAPSHOT" }
API
使用以下参数调用 tables.get 方法:
| 参数 | 值 | 
|---|---|
projectId | 
包含该快照的项目的 ID。 | 
datasetId | 
包含该快照的数据集的名称。 | 
tableId | 
  快照的名称。 | 
响应正文类似于以下示例:
{
  "kind": "bigquery#table",
  "etag": "...",
  "id": "myProject:myDataset.mySnapshot",
  "selfLink": "https://content-bigquery.googleapis.com/bigquery/v2/projects/myProject/datasets/myDataset/tables/mySnapshot",
  "tableReference": {
    "projectId": "myProject",
    "datasetId": "myDataset",
    "tableId": "mySnapshot"
  },
  "description": "...",
  "schema": {
    "fields": [
      ...
    ]
  },
  "numBytes": "637931",
  "numLongTermBytes": "0",
  "numRows": "33266",
  "creationTime": "1593194331936",
  "lastModifiedTime": "1593194331936",
  "type": "SNAPSHOT",
  "location": "US",
  "snapshotDefinition": {
    "baseTableReference": {
      "projectId": "myProject",
      "datasetId": "otherDataset",
      "tableId": "myTable"
    },
    "snapshotTime": "2020-06-26T17:58:50.815Z"
  }
}