このドキュメントでは、BigQuery ビューの情報やメタデータを取得する方法について説明します。
ビューのメタデータは、次の方法で取得できます。
- Cloud Console を使用する
bq
コマンドライン ツールのbq show
コマンドを使用するtables.get
API メソッドを呼び出す- クライアント ライブラリを使用する
INFORMATION_SCHEMA
ビューのクエリを実行する(ベータ版)
必要な権限
ビューに関する情報を取得するには、少なくとも bigquery.tables.get
権限が付与されている必要があります。次の事前定義された IAM ロールには bigquery.tables.get
権限が含まれています。
bigquery.metadataViewer
bigquery.dataViewer
bigquery.dataOwner
bigquery.dataEditor
bigquery.admin
また、bigquery.datasets.create
権限を持つユーザーがデータセットを作成すると、そのデータセットに対する bigquery.dataOwner
アクセス権がユーザーに付与されます。bigquery.dataOwner
アクセス権により、データセット内のビューに関する情報の取得が許可されます。
BigQuery での IAM ロールと権限の詳細については、アクセス制御をご覧ください。
ビューに関する情報の取得
ビューに関する情報を取得するプロセスは、テーブルに関する情報を取得するプロセスと同じです。
ビューに関する情報を取得するには:
Console
データセットを展開します。
ビュー名をクリックします。
[詳細] をクリックします。[詳細] タブには、ビューの説明、ビューの情報、ビューを定義する SQL クエリが表示されます。
bq
bq show
コマンドを発行します。--format
フラグを使用すると、出力を制御できます。デフォルト以外のプロジェクトにあるビューの情報を取得する場合は、[PROJECT_ID]:[DATASET]
の形式でプロジェクト ID をデータセットに追加します。
bq show \ --format=prettyjson \ project_id:dataset.view
ここで
- project_id は、プロジェクト ID です。
- dataset は、データセットの名前です。
- view は、ビューの名前です。
例:
デフォルト プロジェクトのデータセット mydataset
にある myview
の情報を表示するには、次のコマンドを入力します。
bq show --format=prettyjson mydataset.myview
myotherproject
のデータセット mydataset
にある myview
の情報を表示するには、次のコマンドを入力します。
bq show --format=prettyjson myotherproject:mydataset.myview
API
tables.get
メソッドを呼び出し、関連パラメータを指定します。
Go
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Go の手順に従って設定を行ってください。詳細については、BigQuery Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Java の設定手順を実施してください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Node.js の設定手順を実施してください。詳細については、BigQuery Node.js API のリファレンス ドキュメントをご覧ください。
Python
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Python の手順に従って設定を行ってください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。
INFORMATION_SCHEMA
(ベータ版)
INFORMATION_SCHEMA
は、データセット、ルーティン、テーブル、ビュー、ジョブ、予約、ストリーミング データに関するメタデータへのアクセスを可能にする一連のビューです。
VIEWS
ビュー
INFORMATION_SCHEMA.VIEWS
ビューにクエリを実行すると、データセット内の各ビューに関する情報が 1 行ずつ表示されるクエリ結果が返されます。
INFORMATION_SCHEMA.VIEWS
ビューのスキーマは次のとおりです。
列名 | データ型 | 値 |
---|---|---|
TABLE_CATALOG |
STRING |
データセットを含むプロジェクトの名前 |
TABLE_SCHEMA |
STRING |
ビューを含むデータセットの名前(データセット id ともいいます) |
TABLE_NAME |
STRING |
ビューの名前(テーブル id ともいいます) |
VIEW_DEFINITION |
STRING |
ビューを定義する SQL クエリ |
CHECK_OPTION |
STRING |
常に NULL が返されます。 |
USE_STANDARD_SQL |
STRING |
標準 SQL クエリでビューが作成された場合は YES 、useLegacySql が true に設定されている場合は NO が返されます。 |
例
例 1:
次の例では、今後の使用のために予約されている check_option
を除き、すべての列を INFORMATION_SCHEMA.VIEWS
ビューから取得します。デフォルト プロジェクト(myproject
)にある mydataset
内のすべてのビューに対するメタデータが返されます。
デフォルト プロジェクト以外のプロジェクトに対してクエリを実行するには、そのプロジェクト ID を `project_id`.dataset.INFORMATION_SCHEMA.view
という形式でデータセットに追加します。例: `myproject`.mydataset.INFORMATION_SCHEMA.VIEWS
クエリを実行するには:
Console
Cloud Console で [BigQuery] ページを開きます。
[クエリエディタ] ボックスに、次の標準 SQL クエリを入力します。
INFORMATION_SCHEMA
には標準 SQL 構文を使用する必要があります。標準 SQL は Cloud Console のデフォルトの構文です。SELECT * EXCEPT(check_option) FROM mydataset.INFORMATION_SCHEMA.VIEWS
[実行] をクリックします。
bq
query
コマンドで、--nouse_legacy_sql
または --use_legacy_sql=false
フラグを使用して標準 SQL 構文を指定します。INFORMATION_SCHEMA
クエリには標準 SQL 構文を使用する必要があります。
クエリを実行するには、次のように入力します。
bq query --nouse_legacy_sql \ 'SELECT * EXCEPT(check_option) FROM mydataset.INFORMATION_SCHEMA.VIEWS'
結果は次のように表示されます。
+----------------+---------------+---------------+---------------------------------------------------------------------+------------------+ | table_catalog | table_schema | table_name | view_definition | use_standard_sql | +----------------+---------------+---------------+---------------------------------------------------------------------+------------------+ | myproject | mydataset | myview | SELECT column1, column2 FROM [myproject:mydataset.mytable] LIMIT 10 | NO | +----------------+---------------+---------------+---------------------------------------------------------------------+------------------+
結果から、このビューはレガシー SQL クエリを使用して作成されたことがわかります。
例 2:
次の例では、デフォルト プロジェクト(myproject
)で mydataset
の myview
の定義に使用する SQL クエリとクエリ構文を取得します。
デフォルト プロジェクト以外のプロジェクトに対してクエリを実行するには、そのプロジェクト ID を `project_id`.dataset.INFORMATION_SCHEMA.view
という形式でデータセットに追加します。例: `myproject`.mydataset.INFORMATION_SCHEMA.VIEWS
クエリを実行するには:
Console
Cloud Console で [BigQuery] ページを開きます。
[クエリエディタ] ボックスに、次の標準 SQL クエリを入力します。
INFORMATION_SCHEMA
には標準 SQL 構文を使用する必要があります。標準 SQL は Cloud Console のデフォルトの構文です。SELECT table_name, view_definition, use_standard_sql FROM mydataset.INFORMATION_SCHEMA.VIEWS WHERE table_name="myview"
[実行] をクリックします。
bq
query
コマンドで、--nouse_legacy_sql
または --use_legacy_sql=false
フラグを使用して標準 SQL 構文を指定します。INFORMATION_SCHEMA
クエリには標準 SQL 構文を使用する必要があります。
クエリを実行するには、次のように入力します。
bq query --nouse_legacy_sql \ 'SELECT table_name, view_definition, use_standard_sql FROM mydataset.INFORMATION_SCHEMA.VIEWS WHERE table_name="myview"'
結果は次のように表示されます。
+---------------+---------------------------------------------------------------+------------------+
| table_name | view_definition | use_standard_sql |
+---------------+---------------------------------------------------------------+------------------+
| myview | SELECT column1, column2, column3 FROM mydataset.mytable
| YES |
+---------------+---------------------------------------------------------------+------------------+
結果から、このビューは標準の SQL クエリで作成されたことがわかります。
次のステップ
- ビューの作成方法については、ビューの作成をご覧ください。
- 承認済みビューの作成方法については、承認済みビューの作成をご覧ください。
- ビューの一覧表示の詳細については、ビューの一覧表示をご覧ください。
- ビューの更新の詳細については、ビューの更新をご覧ください。
- ビューの管理の詳細については、ビューの管理をご覧ください。
INFORMATION_SCHEMA
の概要については、BigQueryINFORMATION_SCHEMA
の概要をご覧ください。