列出資料表快照

本文說明如何在 Google Cloud 主控台中,透過查詢 INFORMATION_SCHEMA.TABLE_SNAPSHOTS 資料表、使用 bq ls 指令,或是呼叫 tables.list API,取得 BigQuery 資料集中的資料表快照清單。並說明如何透過查詢 INFORMATION_SCHEMA.TABLE_SNAPSHOTS 資料表,列出指定主資料表的所有資料表快照。本文件適用於熟悉 BigQuery 資料表資料表快照的使用者。

權限與角色

本節說明您需要具備哪些身分與存取權管理 (IAM) 權限,才能在資料集中列出資料表快照,以及授予這些權限的預先定義 IAM 角色。列出資料表快照的權限和角色,與列出其他類型的資料表所需的權限和角色相同。

權限

如要列出資料集中的資料表快照,您必須具備下列權限:

權限 資源
bigquery.tables.list 包含資料表快照的資料集。

角色

提供必要權限的預先定義 BigQuery 角色如下:

角色 資源
下列任一項:

bigquery.dataUser
bigquery.dataViewer
bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
包含資料表快照的資料集。

列出資料集中的資料表快照

取得資料集中的資料表快照清單,與列出其他類型的資料表類似。資料表快照的類型為 SNAPSHOT

您可以使用下列任一選項列出資料表快照:

主控台

  1. 前往 Google Cloud 控制台的「BigQuery」頁面。

    前往 BigQuery

  2. 在「Explorer」窗格中,展開您要列出資料表快照的資料集的專案和資料集節點。

  3. 您可以透過圖示辨識資料集中的資料表快照。

    表格快照圖示

SQL

查詢 INFORMATION_SCHEMA.TABLE_SNAPSHOTS 檢視表

  1. 前往 Google Cloud 控制台的「BigQuery」頁面。

    前往 BigQuery

  2. 在查詢編輯器中輸入以下陳述式:

    SELECT
      *
    FROM
      PROJECT_ID.DATASET_NAME.INFORMATION_SCHEMA.TABLE_SNAPSHOTS;

    請依指示取代下列項目:

    • PROJECT_ID:包含要列出的快照的專案 ID。
    • DATASET_NAME:包含要列出的快照的資料集名稱。

  3. 按一下 「Run」

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

結果如下所示:

+---------------+----------------+------------------+--------------------+-------------------+-----------------+-----------------------------+
| table_catalog | table_schema   | table_name       | base_table_catalog | base_table_schema | base_table_name | snapshot_time               |
+---------------+----------------+------------------+--------------------+-------------------+-----------------+-----------------------------+
| myproject     | mydataset      | mysnapshot       | basetableproject   | basetabledataset           | basetable           | 2021-04-16 14:05:27.519 UTC |
+---------------+----------------+------------------+--------------------+-------------------+-----------------+-----------------------------+

bq

在 Cloud Shell 中輸入下列指令:

前往 Cloud Shell

bq ls \
PROJECT_ID:DATASET_NAME

請依指示取代下列項目:

  • PROJECT_ID:包含要列出的快照的專案 ID。
  • DATASET_NAME:包含要列出的快照的資料集名稱。

輸出內容如下所示:

+-------------------------+--------+---------------------+-------------------+
|         tableId         |  Type  |       Labels        | Time Partitioning |
+-------------------------+--------+---------------------+-------------------+
| mysnapshot              |SNAPSHOT|                     |                   |
+-------------------------+--------+---------------------+-------------------+

API

使用下列參數呼叫 tables.list 方法:

參數
projectId 包含要列出的快照的專案 ID。
datasetId 包含要列出的快照的資料集名稱。

列出指定基本資料表的資料表快照

您可以查詢 INFORMATION_SCHEMA.TABLE_SNAPSHOTS 檢視畫面,列出指定基礎資料表的資料表快照:

SELECT
  *
FROM
  PROJECT_ID.DATASET_NAME.INFORMATION_SCHEMA.TABLE_SNAPSHOTS
WHERE
  base_table_name = 'books';
  

請依指示取代下列項目:

  • PROJECT_ID:包含要列出的快照的專案 ID。
  • DATASET_NAME:包含要列出的快照的資料集名稱。

後續步驟