查看表快照元数据

本文档介绍如何通过 Google Cloud 控制台、查询 INFORMATION_SCHEMA 表的 TABLE_SNAPSHOTS 视图、使用 bq show 命令或调用 tables.get API 来查看 BigQuery 表快照的元数据。本文档适用于熟悉 BigQuery 表快照的用户。

权限和角色

本部分介绍查看表快照的元数据所需的 Identity and Access Management (IAM) 权限以及包含这些权限的预定义 IAM 角色

权限

如需查看表快照的元数据,您需要以下权限:

权限 资源
bigquery.tables.get 表快照

角色

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

角色 资源
以下任意一项:

bigquery.metadataViewer
bigquery.dataViewer
bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
表快照

获取表快照的元数据

表快照的元数据与标准表的元数据类似,但存在以下差异:

  • 附加的 baseTableReference 字段用于标识创建快照的基表。
  • type 字段的值为 SNAPSHOT

您可以使用以下选项之一来查看表快照的元数据:

控制台

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

    转到 BigQuery

  2. 探索器窗格中,展开要查看的表快照的项目和数据集节点。

  3. 点击表快照的名称。

  4. 在显示的快照窗格中,您可以执行以下操作:

    • 点击架构标签页,查看表快照的架构和政策标记。

    • 点击详细信息表以查看表快照的大小、到期时间、基表、快照时间以及其他信息。

SQL

如需查看表快照的元数据,请查询 INFORMATION_SCHEMA.TABLE_SNAPSHOTS 视图

  1. 在 Google Cloud Console 中,转到 BigQuery 页面。

    转到 BigQuery

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

    SELECT
      *
    FROM
      PROJECT_ID.DATASET_NAME.INFORMATION_SCHEMA.TABLE_SNAPSHOTS
    WHERE
      table_name = 'SNAPSHOT_NAME';

    请替换以下内容:

    • PROJECT_ID:包含该快照的项目的 ID。
    • DATASET_NAME:包含该快照的数据集的名称。
    • SNAPSHOT_NAME:快照的名称。

  3. 点击 运行

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

bq

在 Cloud Shell 中输入以下命令:

转到 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"
  }
}

后续步骤