查看資料表快照中繼資料
本文說明如何透過 Google Cloud 控制台、查詢INFORMATION_SCHEMA 資料表的 TABLE_SNAPSHOTS 檢視畫面、使用 bq show 指令,或呼叫 tables.get API,查看 BigQuery 資料表快照的中繼資料。適合熟悉 BigQuery資料表和資料表快照的使用者。
權限與角色
本節說明查看資料表快照中繼資料所需的身分與存取權管理 (IAM) 權限,以及授予這些權限的預先定義 IAM 角色。
權限
如要查看資料表快照的中繼資料,您必須具備下列權限:
| 權限 | 資源 | 
|---|---|
bigquery.tables.get
  
 | 
資料表快照 | 
角色
提供必要權限的預先定義 BigQuery 角色如下:
| 角色 | 資源 | 
|---|---|
  下列任一項:bigquery.metadataViewerbigquery.dataViewerbigquery.dataEditorbigquery.dataOwnerbigquery.admin
 | 
資料表快照 | 
取得資料表快照的中繼資料
資料表快照的中繼資料與標準資料表的中繼資料類似,但有以下差異:
- 額外的 
baseTableReference欄位會識別快照的來源基本資料表。 type欄位的值為SNAPSHOT。
您可以透過下列任一方式查看資料表快照的中繼資料:
主控台
前往 Google Cloud 控制台的「BigQuery」頁面。
在左側窗格中,按一下「Explorer」:

如果沒有看到左側窗格,請按一下「展開左側窗格」圖示 開啟窗格。
在「Explorer」窗格中展開專案,按一下「Datasets」,然後按一下含有資料表快照的資料集。
依序點選「總覽」>「資料表」,然後按一下資料表快照的名稱。
在隨即顯示的快照窗格中,您可以執行下列操作:
按一下「結構定義」分頁標籤,查看資料表快照的結構定義和政策標記。
按一下「詳細資料」表格,查看表格快照的大小、到期時間、基本表格、快照時間和其他資訊。
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"
  }
}