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 | 照合順序の仕様の名前(存在する場合)。それ以外の場合は NULLSTRINGまたはARRAY<STRING>が渡されると、照合順序の仕様が存在する場合はそれが返されます。それ以外の場合は、NULLが返されます。 | 
| COLUMN_DEFAULT | STRING | 列のデフォルト値(存在する場合)。それ以外の場合、値は NULLになります。 | 
| ROUNDING_MODE | STRING | フィールドの型がパラメータ化された NUMERICまたはBIGNUMERICの場合、フィールドに書き込まれる値に使用される丸めモード。それ以外の場合は、値がNULLになります。 | 
| POLICY_TAGS | ARRAY<STRING> | 列に接続されているポリシータグのリスト | 
スコープと構文
このビューに対するクエリでは、データセット修飾子またはリージョン修飾子を指定する必要があります。データセット修飾子が指定されたクエリの場合は、データセットに対する権限が必要です。リージョン修飾子が指定されたクエリの場合は、プロジェクトに対する権限が必要です。詳細については、構文をご覧ください。次の表に、このビューのリージョン スコープとリソース スコープを示します。
| ビュー名 | リソース スコープ | リージョン スコープ | 
|---|---|---|
| [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 | policy_tags | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+ | population_by_zip_2010 | zipcode | 1 | NO | STRING | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | geo_id | 2 | YES | STRING | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | minimum_age | 3 | YES | INT64 | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | maximum_age | 4 | YES | INT64 | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | gender | 5 | YES | STRING | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | population | 6 | YES | INT64 | NO | NO | NO | NULL | 0 rows | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+