MATERIALIZED_VIEWS 檢視表
INFORMATION_SCHEMA.MATERIALIZED_VIEWS
檢視畫面包含具體化檢視表的狀態。
所需權限
如要取得查詢 INFORMATION_SCHEMA.MATERIALIZED_VIEWS
檢視畫面所需的權限,請要求管理員為您的專案或資料集授予 BigQuery 中繼資料檢視者 (roles/bigquery.metadataViewer
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這個預先定義的角色包含查詢 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 |
materialized view 的名稱。也稱為 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 | +---------------+------------------------------------------------+