テーブル スナップショットの一覧を取得する

このドキュメントでは、Google Cloud コンソール、INFORMATION_SCHEMA.TABLE_SNAPSHOTS テーブルのクエリ、bq ls コマンド、または tables.list API の呼び出しにより、BigQuery データセット内のテーブル スナップショットの一覧を取得する方法について説明します。また、INFORMATION_SCHEMA.TABLE_SNAPSHOTS テーブルをクエリして、指定したベーステーブルのすべてのテーブル スナップショットを一覧表示する方法についても説明します。このドキュメントは、BigQuery のテーブルテーブル スナップショットを十分に理解しているユーザーを対象としています。

権限とロール

このセクションでは、データセット内のテーブル スナップショットの一覧表示に必要な Identity and Access Management(IAM)権限と、それらの権限を付与する事前定義 IAM ロールについて説明します。テーブル スナップショットの一覧を取得する権限とロールは、他のタイプのテーブルを一覧表示するのに必要な権限およびロールと同じです。

権限

データセット内のテーブル スナップショットを一覧表示するには、次の権限が必要です。

権限 リソース
bigquery.tables.list テーブル スナップショットを含むデータセット。

ロール

必要な権限のある BigQuery の事前定義ロールは次のとおりです。

ロール リソース
次のいずれか:

bigquery.dataUser
bigquery.dataViewer
bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
テーブル スナップショットを含むデータセット。

データセット内のテーブル スナップショットを一覧表示する

データセット内のテーブル スナップショットの一覧の取得は、他のタイプのテーブルの一覧表示と似ています。テーブル スナップショットのタイプは SNAPSHOT です。

テーブル スナップショットを一覧表示するには、次のいずれかのオプションを使用します。

コンソール

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. [エクスプローラ] ペインで、テーブル スナップショットを一覧表示するデータセットのプロジェクトとノードを開きます。

  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. [実行] をクリックします。

クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。

結果は次のようになります。

+---------------+----------------+------------------+--------------------+-------------------+-----------------+-----------------------------+
| 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: 一覧表示するスナップショットを含むデータセットの名前。

次のステップ