「COLUMNS」檢視畫面

INFORMATION_SCHEMA.COLUMNS 檢視表會針對資料表中的每個資料欄 (欄位),分別列出一個相對應的資料列。

所需權限

如要查詢 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 權限,請參閱「使用身分與存取權管理功能控管存取權」一文。

結構定義

當您查詢 INFORMATION_SCHEMA.COLUMNS 檢視表時,系統會在查詢結果中,針對資料集中的每個資料欄 (欄位),分別列出一個相對應的資料列。

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 YESNO,視資料欄的模式是否允許使用 NULL 值而定
DATA_TYPE STRING 資料欄的 GoogleSQL 資料類型
IS_GENERATED STRING 此值一律為 NEVER
GENERATION_EXPRESSION STRING 此值一律為 NULL
IS_STORED STRING 此值一律為 NULL
IS_HIDDEN STRING YESNO,視資料欄是否為虛擬資料欄 (例如 _PARTITIONTIME 或 _PARTITIONDATE) 而定
IS_UPDATABLE STRING 此值一律為 NULL
IS_SYSTEM_DEFINED STRING YESNO,視資料欄是否為虛擬資料欄 (例如 _PARTITIONTIME 或 _PARTITIONDATE) 而定
IS_PARTITIONING_COLUMN STRING YESNO,視資料欄是否為分區資料欄而定
CLUSTERING_ORDINAL_POSITION INT64 在資料表的叢集資料欄中,資料欄的 1 索引偏移。如果資料表不是叢集資料表,則此值為 NULL
COLLATION_NAME STRING 排序規則規格的名稱 (如有),否則為 NULL

。如果傳入 STRINGARRAY<STRING>,則會傳回排序規則規格 (如有),否則會傳回 NULL
COLUMN_DEFAULT STRING 如果資料欄存在,則為該資料欄的預設值;否則,值為 NULL
ROUNDING_MODE STRING 如果欄位類型為參數化 NUMERICBIGNUMERIC,則寫入欄位的值會使用此捨入模式;否則值為 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) 中,因此您應使用以下格式將專案 ID 新增至資料集:`project_id`.dataset.INFORMATION_SCHEMA.view;例如 `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      |
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+