ビューの一覧表示

このドキュメントでは、BigQuery でビューを一覧表示する方法について説明します。

データセット内のビューは、次の方法で一覧表示できます。

  • Cloud Console または従来の BigQuery ウェブ UI を使用する
  • bq ls CLI コマンドを使用する
  • tables.list API メソッドを呼び出す
  • クライアント ライブラリを使用する

必要な権限

データセットに含まれるビューを一覧表示するには、少なくとも bigquery.tables.list 権限が付与されている必要があります。bigquery.tables.list 権限は、事前定義された以下の Cloud IAM の役割に含まれています。

  • bigquery.user
  • bigquery.metadataViewer
  • bigquery.dataViewer
  • bigquery.dataOwner
  • bigquery.dataEditor
  • bigquery.admin

BigQuery での Cloud IAM の役割と権限については、事前定義された役割と権限をご覧ください。

ビューの一覧表示

ビューを一覧表示するプロセスは、テーブルを一覧表示するプロセスと同じです。

データセット内のビューを一覧表示するには、次の手順に従います。

Console

  1. ナビゲーション パネルの [リソース] セクションでプロジェクトを展開し、データセットをクリックします。これにより、データセット内のテーブルとビューが表示されます。

  2. リストをスクロールして、データセット内のテーブルを表示します。テーブルとビューはアイコンで区別できます。

    テーブルとビューのアイコン

従来の UI

  1. BigQuery ウェブ UI のナビゲーション パネルで、データセットの左側にある青色の矢印をクリックして展開するか、データセット名をダブルクリックします。これにより、データセット内のテーブルとビューが表示されます。

  2. リストをスクロールして、データセット内のテーブルを表示します。テーブルとビューはアイコンで区別できます。

    テーブルの表示

bq

bq ls コマンドを発行します。--format フラグを使用して出力を制御できます。デフォルト プロジェクト以外のプロジェクトにあるビューを一覧表示する場合は、project_id:dataset の形式でプロジェクト ID をデータセットに追加します。

bq ls --format=pretty project_id:dataset

ここで

  • project_id はプロジェクト ID です。
  • dataset はデータセットの名前です。

このコマンドを実行すると、Type フィールドに TABLE または VIEW が表示されます。例:

+-------------------------+-------+----------------------+-------------------+
|         tableId         | Type  |        Labels        | Time Partitioning |
+-------------------------+-------+----------------------+-------------------+
| mytable                 | TABLE | department:shipping  |                   |
| myview                  | VIEW  |                      |                   |
+-------------------------+-------+----------------------+-------------------+

例:

次のコマンドを入力すると、デフォルト プロジェクトにある mydataset データセット内のビューが一覧表示されます。

bq ls --format=pretty mydataset

次のコマンドを入力すると、myotherproject にある mydataset データセット内のビューが一覧表示されます。

bq ls --format=pretty myotherproject:mydataset

API

API を使用してビューを一覧表示するには、tables.list メソッドを呼び出します。

Go

このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Go の手順に従って設定を行ってください。詳細については、BigQuery Go API のリファレンス ドキュメントをご覧ください。

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/bigquery"
	"google.golang.org/api/iterator"
)

// listTables demonstrates iterating through the collection of tables in a given dataset.
func listTables(w io.Writer, projectID, datasetID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydataset"
	// tableID := "mytable"
	ctx := context.Background()
	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}
	defer client.Close()

	ts := client.Dataset(datasetID).Tables(ctx)
	for {
		t, err := ts.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return err
		}
		fmt.Fprintf(w, "Table: %q\n", t.TableID)
	}
	return nil
}

Python

このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Python の手順に従って設定を行ってください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。


from google.cloud import bigquery

# Construct a BigQuery client object.
client = bigquery.Client()

# TODO(developer): Set dataset_id to the ID of the dataset that contains
#                  the tables you are listing.
# dataset_id = 'your-project.your_dataset'

tables = client.list_tables(dataset_id)  # Make an API request.

print("Tables contained in '{}':".format(dataset_id))
for table in tables:
    print("{}.{}.{}".format(table.project, table.dataset_id, table.table_id))

次のステップ