COLUMN_FIELD_PATHS 檢視表
INFORMATION_SCHEMA.COLUMN_FIELD_PATHS 檢視表會針對 RECORD (或 STRUCT) 資料欄中巢狀結構的每個資料欄,各列出一個相對應的資料列。
所需權限
如要查詢 INFORMATION_SCHEMA.COLUMN_FIELD_PATHS 檢視畫面,您必須具備下列 Identity and Access Management (IAM) 權限:
bigquery.tables.getbigquery.tables.list
下列每個預先定義的 IAM 角色都包含上述權限:
roles/bigquery.adminroles/bigquery.dataViewerroles/bigquery.dataEditorroles/bigquery.metadataViewer
如要進一步瞭解 BigQuery 權限,請參閱「使用 IAM 控管存取權」。
結構定義
查詢結果會針對 RECORD (或 STRUCT) 資料欄中巢狀結構的每個資料欄,各列出一個相對應的資料列。
查詢 INFORMATION_SCHEMA.COLUMN_FIELD_PATHS 檢視表時,以巢狀結構形式放置在 RECORD (或 STRUCT) 資料欄中的每個資料欄,在查詢結果中都會有一個相對應的資料列。
INFORMATION_SCHEMA.COLUMN_FIELD_PATHS 檢視表具有下列結構定義:
| 資料欄名稱 | 資料類型 | 值 |
|---|---|---|
table_catalog |
STRING |
資料集所屬專案的專案 ID。 |
table_schema |
STRING |
資料表所屬資料集的名稱 (又稱為 datasetId)。 |
table_name |
STRING |
資料表或檢視表的名稱 (又稱為 tableId)。 |
column_name |
STRING |
資料欄的名稱。 |
field_path |
STRING |
以巢狀結構形式放置在 RECORD (或 STRUCT) 資料欄中之資料欄的路徑。 |
data_type |
STRING |
資料欄的 GoogleSQL 資料類型。 |
description |
STRING |
資料欄的說明。 |
collation_name |
STRING |
排序規則規格的名稱 (如有),否則為 NULL。如果傳入 STRUCT 中的 STRING、ARRAY<STRING> 或 STRING 欄位,則會傳回排序規則規格 (如有),否則會傳回 NULL。
|
rounding_mode |
STRING |
將精確度和比例套用至參數化 NUMERIC 或 BIGNUMERIC 值時使用的捨入模式;否則值為 NULL。 |
data_policies.name |
STRING |
附加至資料欄的資料政策清單,用於控管存取權和遮蓋。這個欄位為 (預先發布版)。 |
policy_tags |
ARRAY<STRING> |
附加至資料欄的政策標記清單。 |
為確保穩定性,建議您在資訊結構定義查詢中明確列出資料欄,而非使用萬用字元 (SELECT *)。明確列出資料欄可避免基礎結構定義變更時,查詢中斷。
範圍和語法
對這個檢視表執行的查詢必須包含資料集或區域限定詞。如果是含有資料集限定符的查詢,您必須具備該資料集的權限。如要查詢含有區域限定符的資料,您必須具備專案權限。詳情請參閱「語法」。下表說明這個檢視畫面的區域和資源範圍:
| 檢視表名稱 | 資源範圍 | 區域範圍 |
|---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS |
專案層級 | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS |
資料集層級 | 資料集位置 |
-
選用:
PROJECT_ID:您的 Google Cloud 專案 ID。如未指定,系統會使用預設專案。 -
REGION:任何資料集區域名稱。 例如:`region-us`。 -
DATASET_ID:資料集 ID。詳情請參閱「資料集限定符」。
範例
以下範例會從 github_repos 資料集中的 commits 資料表,擷取 INFORMATION_SCHEMA.COLUMN_FIELD_PATHS 檢視表的中繼資料。這個資料集是 BigQuery 公開資料集方案的一部分。
由於您要查詢的資料表位於另一個專案 (bigquery-public-data) 中,因此您應使用以下格式將專案 ID 新增至資料集:`project_id`.dataset.INFORMATION_SCHEMA.view;例如 `bigquery-public-data`.github_repos.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS。
commits 資料表中包含下列巢狀結構資料欄及巢狀與重複的資料欄:
author:巢狀結構RECORD資料欄committer:巢狀結構RECORD資料欄trailer:巢狀與重複的RECORD資料欄difference:巢狀與重複的RECORD資料欄
如要查看 author 和 difference 資料欄的中繼資料,請執行下列查詢。
SELECT * FROM `bigquery-public-data`.github_repos.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS WHERE table_name = 'commits' AND (column_name = 'author' OR column_name = 'difference');
結果大致如下。為了方便閱讀,部分資料欄已從結果中排除。
+------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------+ | table_name | column_name | field_path | data_type | description | policy_tags | +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------+ | commits | author | author | STRUCT<name STRING, email STRING, time_sec INT64, tz_offset INT64, date TIMESTAMP> | NULL | 0 rows | | commits | author | author.name | STRING | NULL | 0 rows | | commits | author | author.email | STRING | NULL | 0 rows | | commits | author | author.time_sec | INT64 | NULL | 0 rows | | commits | author | author.tz_offset | INT64 | NULL | 0 rows | | commits | author | author.date | TIMESTAMP | NULL | 0 rows | | commits | difference | difference | ARRAY<STRUCT<old_mode INT64, new_mode INT64, old_path STRING, new_path STRING, old_sha1 STRING, new_sha1 STRING, old_repo STRING, new_repo STRING>> | NULL | 0 rows | | commits | difference | difference.old_mode | INT64 | NULL | 0 rows | | commits | difference | difference.new_mode | INT64 | NULL | 0 rows | | commits | difference | difference.old_path | STRING | NULL | 0 rows | | commits | difference | difference.new_path | STRING | NULL | 0 rows | | commits | difference | difference.old_sha1 | STRING | NULL | 0 rows | | commits | difference | difference.new_sha1 | STRING | NULL | 0 rows | | commits | difference | difference.old_repo | STRING | NULL | 0 rows | | commits | difference | difference.new_repo | STRING | NULL | 0 rows | +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------+