INFORMATION_SCHEMA を使用したデータセットのメタデータの取得

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

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

必要な権限

データセットに関する情報またはメタデータを取得するには、少なくとも bigquery.datasets.get 権限が付与されている必要があります。bigquery.datasets.get 権限は、次の事前定義された Cloud IAM 役割に含まれています。

  • bigquery.user
  • bigquery.metadataViewer
  • bigquery.dataViewer
  • bigquery.dataOwner
  • bigquery.dataEditor
  • bigquery.admin

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

SCHEMATA ビュー

INFORMATION_SCHEMA.SCHEMATA ビューにクエリを実行すると、現在のユーザーがアクセスできるプロジェクトの各データセットが 1 行で返されます。

INFORMATION_SCHEMA.SCHEMATA ビューのスキーマは次のとおりです。

列名 データ型
CATALOG_NAME STRING データセットを含むプロジェクトの名前
SCHEMA_NAME STRING データセットの名前(datasetId と呼ぶこともある)
SCHEMA_OWNER STRING 値は常に NULL
CREATION_TIME TIMESTAMP データセットの作成日時
LAST_MODIFIED_TIME TIMESTAMP データセットの最終更新日時
LOCATION STRING データセットの地理的なロケーション

データセット プロパティの詳細については、REST API ドキュメントのデータセット リソースのページをご覧ください。

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

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

クエリを実行するには:

Console

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

    GCP Console に移動する

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

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

CLI

query コマンドで、--nouse_legacy_sql または --use_legacy_sql=false フラグを使用して標準 SQL 構文を指定します。INFORMATION_SCHEMA クエリには標準 SQL 構文が必要です。

クエリを実行するには、次のように入力します。

bq query --nouse_legacy_sql \
'SELECT
   * EXCEPT(schema_owner)
 FROM
   INFORMATION_SCHEMA.SCHEMATA'

結果は次のようになります。

  +----------------+---------------+---------------------+---------------------+-----------------+
  |  catalog_name  |  schema_name  |    creation_time    | last_modified_time  |    location     |
  +----------------+---------------+---------------------+---------------------+-----------------+
  | myproject      | mydataset1    | 2018-11-07 19:50:24 | 2018-11-07 19:50:24 | US              |
  | myproject      | mydataset2    | 2018-07-16 04:24:22 | 2018-07-16 04:24:22 | US              |
  | myproject      | mydataset3    | 2018-02-07 21:08:45 | 2018-05-01 23:32:53 | asia-northeast1 |
  +----------------+---------------+---------------------+---------------------+-----------------+
  

SCHEMATA_OPTIONS ビュー

INFORMATION_SCHEMA.SCHEMATA_OPTIONS ビューにクエリを実行すると、現在のユーザーがアクセスできるプロジェクトの各データセットが 1 行で返されます。

INFORMATION_SCHEMA.SCHEMATA_OPTIONS ビューのスキーマは次のとおりです。

列名 データ型
CATALOG_NAME STRING データセットを含むプロジェクトの名前
SCHEMA_NAME STRING データセットの名前(datasetId と呼ぶこともある)
OPTION_NAME STRING オプション テーブル内の名前の値の 1 つ
OPTION_TYPE STRING オプション テーブルのデータ型の値の 1 つ
OPTION_VALUE STRING オプション テーブルの値オプションの 1 つ
オプション テーブル
OPTION_NAME OPTION_TYPE OPTION_VALUE
default_table_expiration_days FLOAT64 データセット内のすべてのテーブルのデフォルトの有効期間(日数)
friendly_name STRING わかりやすいデータセット名
description STRING データセットの説明
labels ARRAY<STRUCT<STRING, STRING>> データセットのラベルを表す STRUCT の配列

データセット プロパティの詳細については、REST API ドキュメントのデータセット リソースのページをご覧ください。

例 1:

次の例では、INFORMATION_SCHEMATA.SCHEMATA_OPTIONS ビューにクエリを実行して、デフォルト プロジェクト(myproject)内のすべてのデータセットのデフォルトのテーブル有効期限を取得します。

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

クエリを実行するには:

Console

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

    GCP Console に移動する

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

    SELECT
     *
    FROM
     INFORMATION_SCHEMA.SCHEMATA_OPTIONS
    WHERE
     option_name="default_table_expiration_days"
    
  3. [実行] をクリックします。

CLI

query コマンドで、--nouse_legacy_sql または --use_legacy_sql=false フラグを使用して標準 SQL 構文を指定します。INFORMATION_SCHEMA クエリには標準 SQL 構文が必要です。

クエリを実行するには、次のように入力します。

bq query --nouse_legacy_sql \
'SELECT
   *
 FROM
   INFORMATION_SCHEMA.SCHEMATA_OPTIONS
 WHERE
   option_name="default_table_expiration_days"'

結果は次のようになります。

  +----------------+---------------+-------------------------------+-------------+---------------------+
  |  catalog_name  |  schema_name  |          option_name          | option_type |    option_value     |
  +----------------+---------------+-------------------------------+-------------+---------------------+
  | myproject      | mydataset3    | default_table_expiration_days | FLOAT64     | 0.08333333333333333 |
  | myproject      | mydataset2    | default_table_expiration_days | FLOAT64     | 90.0                |
  | myproject      | mydataset1    | default_table_expiration_days | FLOAT64     | 30.0                |
  +----------------+---------------+-------------------------------+-------------+---------------------+
  

例 2:

次の例では、INFORMATION_SCHEMATA.SCHEMATA_OPTIONS ビューにクエリを実行して、デフォルト プロジェクト(myproject)のすべてのデータセットのラベルを取得します。

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

クエリを実行するには:

Console

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

    GCP Console に移動する

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

    SELECT
     *
    FROM
     INFORMATION_SCHEMA.SCHEMATA_OPTIONS
    WHERE
     option_name="labels"
    
  3. [実行] をクリックします。

CLI

query コマンドで、--nouse_legacy_sql または --use_legacy_sql=false フラグを使用して標準 SQL 構文を指定します。INFORMATION_SCHEMA クエリには標準 SQL 構文が必要です。

クエリを実行するには、次のように入力します。

bq query --nouse_legacy_sql \
'SELECT
   *
 FROM
   INFORMATION_SCHEMA.SCHEMATA_OPTIONS
 WHERE
   option_name="labels"'

結果は次のようになります。

  +----------------+---------------+-------------+---------------------------------+------------------------+
  |  catalog_name  |  schema_name  | option_name |          option_type            |      option_value      |
  +----------------+---------------+-------------+---------------------------------+------------------------+
  | myproject      | mydataset1    | labels      | ARRAY<STRUCT<STRING, STRING>>   | [STRUCT("org", "dev")] |
  | myproject      | mydataset2    | labels      | ARRAY<STRUCT<STRING, STRING>>   | [STRUCT("org", "dev")] |
  +----------------+---------------+-------------+---------------------------------+------------------------+
  

次のステップ

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

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

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