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 查詢建立。