BigQuery - 物化檢視



除了建立表和檢視外,BigQuery 還方便建立物化檢視。

什麼是物化檢視?

物化檢視類似於表,因為它也是資料的“快照”。但是,物化檢視的不同之處在於,真正的物化檢視會動態更新,而無需執行查詢。

物化檢視的型別

廣義上講,有兩種物化檢視:

  • 已儲存為表並會定期從外部來源更新的檢視。
  • 在 BigQuery Studio 中建立的“真正”物化檢視。

以下是第一種檢視的示例架構:

  • SQL 查詢現有檢視
  • 在 Python 指令碼中,該檢視被轉換為資料幀
  • 資料幀上傳到 BigQuery
  • 物化檢視被追加或覆蓋

由於上述方法是一個多步驟過程,BigQuery 簡化了物化檢視的建立和維護。

建立 BigQuery 物化檢視

使用者可以透過執行 **CREATE MATERIALIZED VIEW** SQL 語句來建立 BigQuery 物化檢視,後跟:

  • 專案
  • 資料集
  • 新的物化檢視名稱
  • SQL 語句

示例

這是一個示例,其中一個包含假設銷售資料的現有表被物化:

Creating a BigQuery Materialized View

請注意 BigQuery 文件中列出的以下 **限制**:

  • 每個表在一個數據集內最多可包含 20 個物化檢視
  • 一個專案中最多隻能有 100 個物化檢視
  • 一個組織中最多隻能有 500 個物化檢視

在 BigQuery 中編寫簡單的 SQL 指令碼

現在將所有內容整合在一起,是時候編寫一個簡單的指令碼,該指令碼將:

  • 使用動態變數
  • 刪除昨天的資料
  • 將新資料插入表中
  • 使用查詢選擇/載入資料

到目前為止,尚未介紹如何在 SQL 指令碼中定義和使用變數。

在 BigQuery 中,**變數語法**如下:

DECLARE variable_name TYPE DEFAULT function used to create dynamic variable

例如:

DECLARE yesterday DATE DEFAULT DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)

我們將以此開始以下指令碼,該指令碼將刪除奧斯汀共享單車分割槽表中的先前資料,並且只插入最新資料。

Write a Simple SQL Script in BigQuery

在 BigQuery 中執行此指令碼時,由於分號的存在,SQL 引擎將分階段執行它。可以透過單擊“檢視結果”來檢視最終結果。

Write a Simple SQL Script in BigQuery

單擊 **“檢視結果”** 將生成此輸出。

Write a Simple SQL Script in BigQuery

最後,我們可以看到新增到表中的新行。

New Rows Added Table
廣告
© . All rights reserved.