INFORMATION_SCHEMA
は、データセット、テーブル、ビューに関するメタデータへのアクセスを提供する一連のビューです。
INFORMATION_SCHEMA.VIEWS
ビューにクエリを実行し、データセット内のビューのメタデータを取得できます。
必要な権限
ビューに関する情報を取得するには、少なくとも bigquery.tables.get
権限が付与されている必要があります。事前定義された以下の Cloud IAM 役割には、bigquery.tables.get
権限が含まれています。
bigquery.metadataViewer
bigquery.dataViewer
bigquery.dataOwner
bigquery.dataEditor
bigquery.admin
また、bigquery.datasets.create
権限を持つユーザーがデータセットを作成すると、そのデータセットに対する bigquery.dataOwner
アクセス権がユーザーに付与されます。
bigquery.dataOwner
アクセス権により、データセットに含まれるビューに関する情報を取得できます。
BigQuery での Cloud IAM 役割と権限については、アクセス制御をご覧ください。
VIEWS
ビュー
INFORMATION_SCHEMA.VIEWS
ビューにクエリを実行すると、データセット内の各ビューが 1 行で返されます。
INFORMATION_SCHEMA.VIEWS
ビューにクエリを実行する場合は、データセット修飾子を使用する必要があります。クエリを送信するユーザーには、ビューを含むデータセットへのアクセス権が必要です。
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 。 |
テーブルとビューのプロパティの詳細については、REST API ドキュメントのテーブル リソースのページをご覧ください。
例
例 1:
次の例では、将来用に予約されている check_option
を除き、すべての列を INFORMATION_SCHEMA.VIEWS
ビューから取得します。デフォルト プロジェクト(myproject
)にある mydataset
のすべてのビューに対するメタデータが返されます。
INFORMATION_SCHEMA.VIEWS
ビューにクエリを実行する場合は、データセット修飾子を使用する必要があります。クエリを送信するユーザーには、ビューを含むデータセットへのアクセス権が必要です。
デフォルト以外のプロジェクトに対してクエリを実行するには、`project_id`.dataset.INFORMATION_SCHEMA.view
の形式でプロジェクト ID をデータセットに追加します(例: `myproject`.mydataset.INFORMATION_SCHEMA.VIEWS
)
クエリを実行するには:
Console
GCP Console で BigQuery ウェブ UI を開きます。
[クエリエディタ] ボックスに、次の標準 SQL クエリを入力します。
INFORMATION_SCHEMA
では標準 SQL 構文が必要です。標準 SQL は GCP Console のデフォルトの構文です。SELECT * EXCEPT(check_option) FROM mydataset.INFORMATION_SCHEMA.VIEWS
[実行] をクリックします。
CLI
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 クエリとクエリ構文を取得します。
INFORMATION_SCHEMA.VIEWS
ビューにクエリを実行する場合は、データセット修飾子を使用する必要があります。クエリを送信するユーザーには、ビューを含むデータセットへのアクセス権が必要です。
デフォルト以外のプロジェクトに対してクエリを実行するには、`project_id`.dataset.INFORMATION_SCHEMA.view
の形式でプロジェクト ID をデータセットに追加します(例: `myproject`.mydataset.INFORMATION_SCHEMA.VIEWS
)
クエリを実行するには:
Console
GCP Console で BigQuery ウェブ UI を開きます。
[クエリエディタ] ボックスに、次の標準 SQL クエリを入力します。
INFORMATION_SCHEMA
では標準 SQL 構文が必要です。標準 SQL は GCP Console のデフォルトの構文です。SELECT table_name, view_definition, use_standard_sql FROM mydataset.INFORMATION_SCHEMA.VIEWS WHERE table_name="myview"
[実行] をクリックします。
CLI
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 クエリで作成されたことがわかります。
次のステップ
- BigQuery
INFORMATION_SCHEMA
の概要でINFORMATION_SCHEMA
の概要を確認する。 INFORMATION_SCHEMA
を使用してデータセット メタデータを取得する方法を学習する。INFORMATION_SCHEMA
を使用してテーブル メタデータを取得する方法を学習する。