查看表快照元数据
本文档介绍如何通过 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 页面。
在左侧窗格中,点击 Explorer:

如果您没有看到左侧窗格,请点击 展开左侧窗格以打开该窗格。
在探索器窗格中,展开您的项目,点击数据集,然后点击包含表快照的数据集。
依次点击概览 > 表,然后点击表快照的名称。
在显示的快照窗格中,您可以执行以下操作:
点击架构标签页,查看表快照的架构和政策标记。
点击详细信息表以查看表快照的大小、到期时间、基表、快照时间以及其他信息。
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"
}
}