VIEWS 檢視

INFORMATION_SCHEMA.VIEWS 檢視畫面包含檢視畫面相關的中繼資料。

所需權限

如要取得檢視中繼資料,您必須具備下列身分與存取權管理 (IAM) 權限:

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

以下每個預先定義的 IAM 角色都包含取得檢視中繼資料所需的權限:

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

如要進一步瞭解 BigQuery 權限,請參閱「使用身分與存取權管理功能控管存取權」。

結構定義

當您查詢 INFORMATION_SCHEMA.VIEWS 檢視表時,資料集中的每個檢視表都會有一列相對應的查詢結果。

INFORMATION_SCHEMA.VIEWS 檢視表具有下列結構定義:

資料欄名稱 資料類型
TABLE_CATALOG STRING 包含資料集的專案名稱
TABLE_SCHEMA STRING 包含檢視表的資料集名稱 (又稱為資料集 id)
TABLE_NAME STRING 檢視表的名稱 (又稱為資料表 id)
VIEW_DEFINITION STRING 定義檢視表的 SQL 查詢
CHECK_OPTION STRING 傳回的值一律為 NULL
USE_STANDARD_SQL STRING 如果檢視表是使用 GoogleSQL 查詢建立,即為 YES;如果將 useLegacySql 設為 true,則為 NO

範圍和語法

對這個檢視表執行的查詢必須包含資料集或區域限定詞。如果查詢含有資料集限定條件,您必須具備該資料集的權限。如果查詢包含區域限定條件,您必須具備專案權限。詳情請參閱「語法」。下表說明這個檢視畫面的區域和資源範圍:

檢視表名稱 資源範圍 區域範圍
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.VIEWS 專案層級 REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.VIEWS 資料集層級 資料集位置
替換下列內容:
  • 選用:PROJECT_ID: Google Cloud 專案的 ID。如果未指定,系統會使用預設專案。
  • REGION:任一資料集區域名稱。例如:`region-us`
  • DATASET_ID:資料集 ID。詳情請參閱「資料集限定條件」。

例如:

-- Returns metadata for views in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.VIEWS;

-- Returns metadata for all views in a region.
SELECT * FROM region-us.INFORMATION_SCHEMA.VIEWS;

範例

範例 1:

下列範例從 INFORMATION_SCHEMA.VIEWS 檢視表擷取了所有資料欄,但保留 check_option 以供未來使用。系統傳回的是預設專案 (myproject) 中 mydataset 內所有檢視表的中繼資料。

如要對預設專案以外的專案執行查詢,請使用以下格式將專案 ID 新增至資料集:`project_id`.dataset.INFORMATION_SCHEMA.view;例如 `myproject`.mydataset.INFORMATION_SCHEMA.VIEWS

SELECT
  * EXCEPT (check_option)
FROM
  mydataset.INFORMATION_SCHEMA.VIEWS;

結果大致如下:

  +----------------+---------------+---------------+---------------------------------------------------------------------+------------------+
  | table_catalog  | table_schema  |  table_name   |                        view_definition                              | use_standard_sql |
  +----------------+---------------+---------------+---------------------------------------------------------------------+------------------+
  | myproject      | mydataset     | myview        | SELECT column1, column2 FROM [myproject:mydataset.mytable] LIMIT 10 | NO               |
  +----------------+---------------+---------------+---------------------------------------------------------------------+------------------+
  

請注意,結果顯示這個檢視表是使用舊版 SQL 查詢建立。

範例 2:

以下範例會擷取用來在預設專案 (myproject) 中的 mydataset 內定義 myview 的 SQL 查詢與查詢語法。

如要對預設專案以外的專案執行查詢,請使用以下格式將專案 ID 新增至資料集:`project_id`.dataset.INFORMATION_SCHEMA.view;例如 `myproject`.mydataset.INFORMATION_SCHEMA.VIEWS

SELECT
  table_name, view_definition, use_standard_sql
FROM
  mydataset.INFORMATION_SCHEMA.VIEWS
WHERE
  table_name = 'myview';

結果大致如下:

  +---------------+---------------------------------------------------------------+------------------+
  |  table_name   |                        view_definition                        | use_standard_sql |
  +---------------+---------------------------------------------------------------+------------------+
  | myview        | SELECT column1, column2, column3 FROM mydataset.mytable       | YES              |
  +---------------+---------------------------------------------------------------+------------------+
  

請注意,結果顯示這個資料檢視是使用 GoogleSQL 查詢建立。