邏輯檢視畫面簡介
本文將概略說明 BigQuery 支援的邏輯檢視表。
總覽
視圖是 SQL 查詢定義的虛擬表格。BigQuery 的預設檢視類型是邏輯檢視。查詢結果只會包含在定義檢視表的查詢中指定的資料表和欄位資料。
每次查詢檢視表時,都會執行定義檢視表的查詢。
檢視類型
雖然邏輯檢視畫面是預設的檢視畫面類型,但如果您經常查詢大型或運算成本高昂的檢視畫面,則應考慮建立materialized view,這是預先運算的檢視畫面,會定期快取查詢結果,以提高效能和效率。
不過,您通常可以透過只查詢資料子集,或使用其他技巧,來改善邏輯檢視表的效能,而不需要建立已實作的檢視表。
您也可以建立已授權檢視表,將來源資料集中的部分資料分享至次要資料集中的檢視表。接著,您可以將這個檢視畫面分享給特定使用者和群組 (主要使用者),讓他們可以查看您分享的資料並對其執行查詢,但無法直接存取來源資料集。
您可以為邏輯檢視表或具體化檢視表建立授權檢視表。具體化檢視表的授權檢視表稱為授權具體化檢視表。
用途
檢視畫面的常見用途包括:
- 為複雜查詢或有限的資料集提供容易重複使用的名稱,然後授權其他使用者存取。建立檢視表後,使用者就能像查詢資料表一樣查詢檢視表。
- 在常見物件中抽象並儲存計算和彙整邏輯,以簡化查詢使用方式。
- 提供部分資料和計算邏輯的存取權,但不提供基礎資料表的存取權。
- 針對多種用途,改善需要大量運算成本且資料集結果較小的查詢。
您也可以在其他情境中使用檢視畫面:
- 做為 Looker Studio 等視覺化工具的資料來源。
- 用於將資料分享給 BigQuery sharing (舊稱 Analytics Hub) 的訂閱者。
與具體化檢視表的比較
邏輯檢視表是虛擬的,可提供可重複使用的資料集參照,但不會實際儲存任何資料。實體檢視畫面是使用 SQL 定義的,就像邏輯檢視畫面一樣,但會實際儲存 BigQuery 用來改善效能的資料。如需進一步比較,請參閱「已實作的檢視區塊功能」。
邏輯檢視畫面的限制
BigQuery 資料檢視有下列幾項限制:
- 檢視畫面為唯讀。舉例來說,您無法執行插入、更新或刪除資料的查詢。
- 包含檢視表的資料集,以及包含檢視表參照之資料表的資料集,必須位於同一個位置。
- 檢視表內的參照項目必須與資料集相符。預設資料集不會影響檢視區塊。
- 您無法使用
TableDataList
JSON API 方法從檢視表擷取資料。詳情請參閱 Tabledata:list 的相關說明。 - 使用檢視表時,不能混用 GoogleSQL 和舊版 SQL 查詢。GoogleSQL 查詢無法參照使用舊版 SQL 語法定義的檢視表。
- 您無法在檢視表中參照查詢參數。
- 建立檢視表時,系統會將基礎資料表的結構定義和檢視表一併儲存。如果在資料檢視建立後新增、刪除或修改資料欄,系統不會自動更新資料檢視,且回報的結構定義會一直不正確,直到資料檢視 SQL 定義變更或重新建立資料檢視為止。不過即使回報的結構定義不正確,所有提交的查詢還是會產生正確的結果。
- 您無法將舊版 SQL 檢視表自動更新為 GoogleSQL 語法。如要修改用於定義檢視表的查詢,您可以使用下列方式:
- Google Cloud 控制台中的「編輯查詢」選項
- bq 指令列工具中的
bq update --view
指令 - BigQuery 用戶端程式庫
- update 或 patch API 方法。
- 您無法在定義檢視表的 SQL 查詢中加入暫時性使用者定義函式或暫時性資料表。
- 您無法在萬用字元資料表查詢中參照資料檢視。
邏輯檢視畫面配額
如要深入瞭解檢視表適用的配額與限制,請參閱檢視表限制一節。
用來定義檢視表的 SQL 查詢也會受到查詢工作配額的限制。
邏輯檢視畫面定價
BigQuery 預設使用邏輯檢視表,而非具體化檢視表。由於檢視表並未預設為具體化,每次查詢檢視表時,都會執行定義檢視表的查詢。系統會根據頂層查詢直接或間接參照的所有資料表欄位中的總資料量來計算查詢費用。
- 如需查詢一般價格,請參閱「以量計價的運算單元定價」。
- 如需查看與實體檢視相關的定價,請參閱「實體檢視定價」。
邏輯檢視畫面的安全性
如要控管 BigQuery 中的檢視表存取權,請參閱「授權檢視表」。
後續步驟
- 如要瞭解如何建立檢視表,請參閱建立檢視表一文。
- 如要瞭解如何建立授權檢視表,請參閱建立授權檢視表一文。
- 如要瞭解如何取得檢視表中繼資料,請參閱取得檢視表相關資訊一文。
- 如要進一步瞭解如何管理檢視表,請參閱「管理檢視表」。