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

は、

INFORMATION_SCHEMA は、データセット、テーブル、ビューに関するメタデータへのアクセスを提供する一連のビューです。

INFORMATION_SCHEMA.VIEWS ビューにクエリを実行し、データセット内のビューのメタデータを取得できます。

必要な権限

ビューに関する情報を取得するには、データセットに対する READER 役割が割り当てられているか、bigquery.tables.get 権限を含むプロジェクト レベルの IAM 役割が割り当てられている必要があります。プロジェクト レベルで bigquery.tables.get 権限が付与されているユーザーは、そのプロジェクト内のすべてのビューに関する情報を取得できます。事前定義されているプロジェクト レベルの IAM 役割のうち、bigquery.jobUserbigquery.user 以外の役割には、bigquery.tables.get 権限が含まれています。

また、bigquery.user 役割が割り当てられているユーザーには bigquery.datasets.create 権限もあります。そのため、bigquery.user 役割が割り当てられているユーザーは、自分が作成した任意のデータセット内のビューに関する情報を取得できます。bigquery.user 役割に割り当てられているユーザーがデータセットを作成すると、そのユーザーには、作成したデータセットへの OWNER アクセス権が付与されます。データセットへの OWNER アクセス権が付与されたユーザーは、そのデータセットと、そこに含まれるすべてのビューを完全に制御できます。

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

例 1:

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

INFORMATION_SCHEMA.VIEWS ビューにクエリを実行する場合は、データセット修飾子を使用する必要があります。クエリを送信するユーザーには、ビューを含むデータセットへのアクセス権が必要です。

デフォルト プロジェクト以外のプロジェクトにクエリを実行する場合は、次の形式でプロジェクト ID をデータセットに追加します。`[PROJECT_ID]`.[DATASET].INFORMATION_SCHEMA.[VIEW] (例: `myproject`.mydataset.INFORMATION_SCHEMA.VIEWS

クエリを実行するには:

Console

  1. GCP Console で BigQuery ウェブ UI を開きます。

    BigQuery ウェブ UI に移動

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

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

コマンドライン

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

INFORMATION_SCHEMA.VIEWS ビューにクエリを実行する場合は、データセット修飾子を使用する必要があります。クエリを送信するユーザーには、ビューを含むデータセットへのアクセス権が必要です。

デフォルト プロジェクト以外のプロジェクトにクエリを実行する場合は、次の形式でプロジェクト ID をデータセットに追加します。`[PROJECT_ID]`.[DATASET].INFORMATION_SCHEMA.[VIEW] (例: `myproject`.mydataset.INFORMATION_SCHEMA.VIEWS

クエリを実行するには:

Console

  1. GCP Console で BigQuery ウェブ UI を開きます。

    BigQuery ウェブ UI に移動

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

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

コマンドライン

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

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。