邏輯檢視表簡介
「邏輯檢視表」是由 SQL 查詢定義的虛擬資料表,也是 BigQuery 中的預設檢視表類型。邏輯檢視表可讓您重複使用複雜的查詢,並簡化計算和彙整邏輯。您也可以透過授權檢視表,授予使用者部分資料的存取權,而不必授予基礎資料表的存取權。
每次查詢邏輯檢視表時,系統都會執行定義邏輯檢視表的查詢,因此結果只會包含查詢指定的資料表和欄位中的目前資料。本文說明邏輯檢視表的常見用途、限制、配額、定價和安全性。
用途
檢視表的常見用途包括:
- 為複雜查詢或有限資料集提供可重複使用的名稱,然後授權其他使用者存取。建立檢視表後,使用者可以像查詢資料表一樣查詢檢視表。
- 在通用物件中擷取並儲存計算和彙整邏輯,簡化查詢作業。
- 提供部分資料和計算邏輯的存取權,但不提供基礎資料表的存取權。
- 針對多種用途,最佳化運算成本高且資料集結果小的查詢。
您也可以在其他情況下使用檢視表:
- 做為 數據分析 等視覺化工具的資料來源。
- 將資料提供給 BigQuery sharing (舊稱 Analytics Hub) 的訂閱者。
如要比較邏輯、materialized view 和授權 view,請參閱「邏輯和 materialized view 總覽」。
邏輯檢視表限制
BigQuery 資料檢視有下列幾項限制:
- 檢視表為唯讀狀態。例如,您無法執行插入、更新或刪除資料的查詢。
- 如果檢視表參照遠端位置的資料表,您必須先啟用全域查詢,才能建立檢視表。
- 檢視表內的參照必須符合資料集。預設資料集不會影響檢視表主體。
- 您無法使用
TableDataListJSON API 方法從檢視表擷取資料。詳情請參閱 Tabledata:list 的相關說明。 - 使用檢視表時,您無法混合使用 GoogleSQL 和舊版 SQL 查詢。GoogleSQL 查詢無法參照使用舊版 SQL 語法定義的檢視表。
- 您無法在檢視表中參照查詢參數。
- 建立檢視表時,系統會將基礎資料表的結構定義和檢視表一併儲存。如果在建立檢視表後新增、刪除或修改資料欄,檢視表不會自動更新,且回報的結構定義會維持不準確狀態,直到檢視表 SQL 定義變更或重新建立檢視表為止。雖然回報的結構定義可能不準確,但所有提交的查詢都會產生準確的結果。
- 您無法自動將舊版 SQL 檢視表更新為 GoogleSQL 語法。如要修改用於定義檢視表的查詢,可以使用下列指令:
- Google Cloud 控制台中的「Edit query」(編輯查詢) 選項
- bq 指令列工具中的
bq update --view指令 - BigQuery 用戶端程式庫
- update 或 patch API 方法。
- 在定義檢視表的 SQL 查詢中,不得包含 temporary user-defined function 或臨時資料表。
- 您無法在萬用字元資料表查詢中參照檢視表。
- 邏輯檢視表無法繼承或明確定義參數化資料類型 (例如
STRING(n)),因為參數化資料類型僅適用於基礎資料表資料欄和指令碼變數。
邏輯檢視表配額
如要瞭解檢視表的配額和限制,請參閱「檢視表限制」。用於定義檢視表的 SQL 查詢也受查詢工作配額限制。
邏輯檢視表定價
BigQuery 預設使用邏輯檢視表,而非具體化檢視表。根據預設,檢視表不會具體化,因此每次查詢檢視表時,都會執行定義檢視表的查詢。查詢費用是根據頂層查詢直接或間接參照的所有資料表欄位中的資料總量計算。
- 如要瞭解一般查詢定價,請參閱「隨選運算定價」。
- 如要瞭解 materialized view 的相關定價,請參閱「materialized view 定價」。
邏輯檢視表安全性
如要控管 BigQuery 檢視表的存取權,請參閱「授權檢視表」。
後續步驟
- 如要瞭解如何建立檢視表,請參閱建立檢視表一文。
- 如要瞭解如何建立授權檢視表,請參閱建立授權檢視表一文。
- 如要瞭解如何取得檢視表中繼資料,請參閱取得檢視表相關資訊一文。
- 如要進一步瞭解如何管理檢視表,請參閱「管理檢視表」。