MATERIALIZED_VIEWS 檢視區塊
INFORMATION_SCHEMA.MATERIALIZED_VIEWS
檢視畫面包含具體化檢視表的狀態。
所需權限
如要取得查詢 INFORMATION_SCHEMA.MATERIALIZED_VIEWS
檢視畫面所需的權限,請要求管理員授予您專案或資料集的 BigQuery 中繼資料檢視者 (roles/bigquery.metadataViewer
) 身分與存取權管理角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這個預先定義的角色具備查詢 INFORMATION_SCHEMA.MATERIALIZED_VIEWS
檢視畫面所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要查詢 INFORMATION_SCHEMA.MATERIALIZED_VIEWS
檢視區塊,必須具備下列權限:
-
bigquery.tables.get
-
bigquery.tables.list
結構定義
查詢 INFORMATION_SCHEMA.MATERIALIZED_VIEWS
檢視表時,查詢結果會為資料集中的每個具體化檢視表包含一個資料列。
INFORMATION_SCHEMA.MATERIALIZED_VIEWS
檢視表具有下列結構定義:
資料欄名稱 | 資料類型 | 值 |
---|---|---|
TABLE_CATALOG |
STRING |
包含資料集的專案名稱。也稱為「projectId 」。 |
TABLE_SCHEMA |
STRING |
包含具體化檢視的資料集名稱。也稱為「datasetId 」。 |
TABLE_NAME |
STRING |
具體化檢視區塊的名稱。也稱為「tableId 」。 |
LAST_REFRESH_TIME |
TIMESTAMP |
上次重新整理這個具體化檢視區塊的時間。 |
REFRESH_WATERMARK |
TIMESTAMP |
具體化檢視表的重新整理浮水印。實體化檢視表快取會包含實體化檢視表基礎資料表在此時間之前所含的資料。 |
LAST_REFRESH_STATUS |
RECORD |
上次自動重新整理作業的錯誤結果,以 ErrorProto 物件表示。如果顯示這個圖示,表示上次自動重新整理失敗。 |
範圍和語法
對這個檢視表執行的查詢必須包含資料集或區域限定詞。如果是含有資料集限定符的查詢,您必須具備該資料集的權限。如要查詢含有區域限定符的資料,您必須具備專案權限。 詳情請參閱語法。 下表說明這個檢視畫面的區域和資源範圍:
檢視表名稱 | 資源範圍 | 區域範圍 |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.MATERIALIZED_VIEWS |
專案層級 | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.MATERIALIZED_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.MATERIALIZED_VIEWS;
-- Returns metadata for all views in a region.
SELECT * FROM region-us.INFORMATION_SCHEMA.MATERIALIZED_VIEWS;
範例
範例 1:
以下範例會從 INFORMATION_SCHEMA.MATERIALIZED_VIEWS
檢視表擷取所有不正常的具體化檢視區塊。系統會傳回預設專案 (myproject
) 中 mydataset
內,具有非 NULL
last_refresh_status
值的具體化檢視區塊。
如要對預設專案以外的專案執行查詢,請使用以下格式將專案 ID 新增至資料集:`project_id`.dataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS
;例如 `myproject`.mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS
。
SELECT table_name, last_refresh_status FROM mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS WHERE last_refresh_status IS NOT NULL;
結果會類似如下:
+---------------+---------------------------------------------------------------------+ | table_name | last_refresh_status | +---------------------------------------------------------------------+---------------+ | myview | {"reason":"invalidQuery","location":"query","message":"..."} | +---------------------------------------------------------------------+---------------+
範例 2:
下列範例會擷取預設專案 (myproject
) 中 mydataset
內具體化檢視區塊 myview
的 last_refresh_time
和 refresh_watermark
。結果會顯示上次重新整理具體化檢視表的時間,以及將基礎資料表的資料收集到具體化檢視表快取的時間。
如要對預設專案以外的專案執行查詢,請使用以下格式將專案 ID 新增至資料集:`project_id`.dataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS
;例如 `myproject`.mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS
。
SELECT table_name, last_refresh_time, refresh_watermark FROM mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS WHERE table_name = 'myview';
結果會類似如下:
+---------------+------------------------------------------------+ | table_name | last_refresh_time | refresh_watermark | +---------------+------------------------------------------------+ | myview | 2023-02-22 19:37:17 | 2023-03-08 16:52:57 | +---------------+------------------------------------------------+