INFORMATION_SCHEMA を使用したビュー メタデータの取得

INFORMATION_SCHEMA.VIEWS にはビューに関するメタデータが含まれます。

必要な権限

VIEWS を取得するには、bigquery.tables.getbigquery.tables.list の権限が付与されている必要があります。

構文

このビューに対するクエリでは、データセットまたはリージョンの修飾子を指定する必要があります。

-- Returns metadata for views in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.VIEWS;

-- Returns metadata for all views in a region.
SELECT * FROM region-us.INFORMATION_SCHEMA.VIEWS;

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 クエリでビューが作成された場合は YESuseLegacySqltrue に設定されている場合は NO が返されます。

例 1:

次の例では、今後の使用のために予約されている check_option を除き、すべての列を INFORMATION_SCHEMA.VIEWS ビューから取得します。デフォルト プロジェクト(myproject)にある mydataset 内のすべてのビューに対するメタデータが返されます。

デフォルト プロジェクト以外のプロジェクトに対してクエリを実行するには、そのプロジェクト ID を `project_id`.dataset.INFORMATION_SCHEMA.view という形式でデータセットに追加します。例: `myproject`.mydataset.INFORMATION_SCHEMA.VIEWS

クエリを実行するには:

Console

  1. Cloud Console で [BigQuery] ページを開きます。

    [BigQuery] ページに移動

  2. [クエリエディタ] ボックスに、次の標準 SQL クエリを入力します。INFORMATION_SCHEMA には標準 SQL 構文を使用する必要があります。標準 SQL は Cloud Console のデフォルトの構文です。

    SELECT
     * EXCEPT(check_option)
    FROM
     mydataset.INFORMATION_SCHEMA.VIEWS
    
  3. [実行] をクリックします。

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)で mydatasetmyview の定義に使用する SQL クエリとクエリ構文を取得します。

デフォルト プロジェクト以外のプロジェクトに対してクエリを実行するには、そのプロジェクト ID を `project_id`.dataset.INFORMATION_SCHEMA.view という形式でデータセットに追加します。例: `myproject`.mydataset.INFORMATION_SCHEMA.VIEWS

クエリを実行するには:

Console

  1. Cloud Console で [BigQuery] ページを開きます。

    [BigQuery] ページに移動

  2. [クエリエディタ] ボックスに、次の標準 SQL クエリを入力します。INFORMATION_SCHEMA には標準 SQL 構文を使用する必要があります。標準 SQL は Cloud Console のデフォルトの構文です。

    SELECT
     table_name, view_definition, use_standard_sql
    FROM
     mydataset.INFORMATION_SCHEMA.VIEWS
    WHERE
     table_name="myview"
    
  3. [実行] をクリックします。

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 クエリで作成されたことがわかります。