VIEWS ビュー

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

必要な権限

ビューのメタデータを取得するには、次の Identity and Access Management(IAM)権限が必要です。

  • bigquery.tables.get
  • bigquery.tables.list

次の IAM 事前定義ロールには、ビュー メタデータを取得するために必要な権限が含まれています。

  • roles/bigquery.admin
  • roles/bigquery.dataEditor
  • roles/bigquery.metadataViewer
  • roles/bigquery.dataViewer

BigQuery の権限の詳細については、IAM でのアクセス制御をご覧ください。

スキーマ

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 YES(GoogleSQL クエリを使用してビューを作成した場合)。useLegacySqltrue に設定されている場合は NO

スコープと構文

このビューに対するクエリでは、データセット修飾子またはリージョン修飾子を指定する必要があります。データセット修飾子が指定されたクエリの場合は、データセットに対する権限が必要です。リージョン修飾子が指定されたクエリの場合は、プロジェクトに対する権限が必要です。詳細については、構文をご覧ください。次の表に、このビューのリージョン スコープとリソース スコープを示します。

ビュー名 リソース スコープ リージョン スコープ
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.VIEWS プロジェクト レベル REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.VIEWS データセット レベル データセットのロケーション
次のように置き換えます。

  • 省略可: PROJECT_ID: Google Cloud プロジェクトの ID。指定しない場合は、デフォルトのプロジェクトが使用されます。

    次に例を示します。

    -- 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;
    

    Examples

    例 1:

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

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

    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 クエリとクエリ構文を取得します。

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

    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              |
      +---------------+---------------------------------------------------------------+------------------+
      

    結果から、このビューは GoogleSQL クエリを使用して作成されたことがわかります。