查看資料表快照中繼資料
本文說明如何在 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
。
您可以使用下列任一選項,查看資料表快照的中繼資料:
主控台
前往 Google Cloud 控制台的「BigQuery」頁面。
在「Explorer」窗格中,展開要查看的資料表快照的專案和資料集節點。
按一下資料表快照的名稱。
在隨即顯示的快照窗格中,您可以執行下列操作:
按一下「結構定義」分頁標籤,查看資料表快照的結構定義和政策標記。
按一下「Details」表格,即可查看資料表快照的大小、到期時間、基礎資料表、快照時間和其他資訊。
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
:快照名稱。
按一下
「Run」。
如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」一文。
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" } }