COLUMNS ビュー

INFORMATION_SCHEMA.COLUMNS ビューは、テーブル内の列(フィールド)ごとに 1 行が表示されます。

必要な権限

INFORMATION_SCHEMA.COLUMNS ビューをクエリするには、次の Identity and Access Management(IAM)権限が必要です。

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

次の各 IAM 事前定義ロールには、上の権限が含まれています。

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

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

スキーマ

INFORMATION_SCHEMA.COLUMNS ビューにクエリを実行すると、クエリ結果として、テーブル内の列(フィールド)ごとに 1 行が表示されます。

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

列名 データ型
TABLE_CATALOG STRING データセットを含むプロジェクトのプロジェクト ID
TABLE_SCHEMA STRING datasetId とも呼ばれる、テーブルを含むデータセットの名前
TABLE_NAME STRING テーブルまたはビューの名前(tableId とも呼ばれる)
COLUMN_NAME STRING 列の名前
ORDINAL_POSITION INT64 テーブル内の列の 1 から始まるオフセット。_PARTITIONTIME や _PARTITIONDATE などの疑似列の場合、値は NULL
IS_NULLABLE STRING YES または NO(列のモードが NULL 値を許可するかどうかによる)
DATA_TYPE STRING 列の GoogleSQL データ型
IS_GENERATED STRING 値は常に NEVER
GENERATION_EXPRESSION STRING 値は常に NULL
IS_STORED STRING 値は常に NULL
IS_HIDDEN STRING YES または NO(列が _PARTITIONTIME や _PARTITIONDATE などの疑似列であるかどうかによる)
IS_UPDATABLE STRING 値は常に NULL
IS_SYSTEM_DEFINED STRING YES または NO(列が _PARTITIONTIME や _PARTITIONDATE などの疑似列であるかどうかによる)
IS_PARTITIONING_COLUMN STRING YES または NO(列がパーティショニング列かどうかによる)
CLUSTERING_ORDINAL_POSITION INT64 テーブルのクラスタリング列内の列の 1 から始まるオフセット。テーブルがクラスタ化テーブルでない場合、値は NULL
COLLATION_NAME STRING 照合順序の仕様の名前(存在する場合)。それ以外の場合は NULL

STRING または ARRAY<STRING> が渡されると、照合順序の仕様が存在する場合はそれが返されます。それ以外の場合は、NULL が返されます。
COLUMN_DEFAULT STRING 列のデフォルト値(存在する場合)。それ以外の場合、値は NULL になります。
ROUNDING_MODE STRING フィールドの型がパラメータ化された NUMERIC または BIGNUMERIC の場合、フィールドに書き込まれる値に使用される丸めモード。それ以外の場合は、値が NULL になります。

スコープと構文

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

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

  • 省略可: PROJECT_ID: Google Cloud プロジェクトの ID。指定しない場合は、デフォルトのプロジェクトが使用されます。
+ REGION: 任意のデータセット リージョン名。例: region-us+ DATASET_ID: データセットの ID。詳しくは、データセット修飾子をご覧ください。

次の例では、census_bureau_usa データセットにある population_by_zip_2010 テーブルの INFORMATION_SCHEMA.COLUMNS ビューからメタデータを取得しています。このデータセットは、BigQuery の一般公開データセット プログラムの一部です。

クエリ対象のテーブルは別のプロジェクト(bigquery-public-data プロジェクト)にあるため、この形式 `project_id`.dataset.INFORMATION_SCHEMA.view でプロジェクト ID をデータセットに追加します。例: `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES

次の列は現時点で今後の使用のために予約されているため、クエリ結果から除外されます。

  • IS_GENERATED
  • GENERATION_EXPRESSION
  • IS_STORED
  • IS_UPDATABLE
  SELECT
    * EXCEPT(is_generated, generation_expression, is_stored, is_updatable)
  FROM
    `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.COLUMNS
  WHERE
    table_name = 'population_by_zip_2010';

次のような結果になります。読みやすくするため、一部の列は結果から除外されています。

+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+
|       table_name       | column_name | ordinal_position | is_nullable | data_type | is_hidden | is_system_defined | is_partitioning_column | clustering_ordinal_position |
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+
| population_by_zip_2010 | zipcode     |                1 | NO          | STRING    | NO        | NO                | NO                     |                        NULL |
| population_by_zip_2010 | geo_id      |                2 | YES         | STRING    | NO        | NO                | NO                     |                        NULL |
| population_by_zip_2010 | minimum_age |                3 | YES         | INT64     | NO        | NO                | NO                     |                        NULL |
| population_by_zip_2010 | maximum_age |                4 | YES         | INT64     | NO        | NO                | NO                     |                        NULL |
| population_by_zip_2010 | gender      |                5 | YES         | STRING    | NO        | NO                | NO                     |                        NULL |
| population_by_zip_2010 | population  |                6 | YES         | INT64     | NO        | NO                | NO                     |                        NULL |
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+