查看資料表快照中繼資料

本文說明如何在 Google Cloud 主控台中查詢 INFORMATION_SCHEMA 資料表的 TABLE_SNAPSHOTS 檢視畫面,藉此查看 BigQuery 資料表快照的中繼資料。您可以使用 bq show 指令,或呼叫 tables.get API 來查詢。本文章適用於熟悉 BigQuery 資料表資料表快照的使用者。

權限與角色

本節說明查看資料表快照中繼資料時所需的身分與存取權管理 (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. 在「Explorer」窗格中,展開要查看的資料表快照的專案和資料集節點。

  3. 按一下資料表快照的名稱。

  4. 在隨即顯示的快照窗格中,您可以執行下列操作:

    • 按一下「結構定義」分頁標籤,查看資料表快照的結構定義和政策標記。

    • 按一下「Details」表格,即可查看資料表快照的大小、到期時間、基礎資料表、快照時間和其他資訊。

SQL

如要查看資料表快照的中繼資料,請查詢 INFORMATION_SCHEMA.TABLE_SNAPSHOTS 檢視畫面

  1. 前往 Google Cloud 控制台的「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. 按一下 「Run」

如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」一文。

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

後續步驟