持續查詢簡介
本文說明 BigQuery 持續查詢。
BigQuery 持續查詢是會不斷執行的 SQL 陳述式,您可以透過持續查詢功能,即時分析 BigQuery 中的傳入資料。您可以將連續查詢產生的輸出資料列插入 BigQuery 資料表,或匯出至 Pub/Sub 或 Bigtable。持續查詢可使用下列其中一種方法,處理已寫入標準 BigQuery 資料表的資料:
您可以使用持續查詢執行時間敏感型工作,例如建立洞察資料並立即採取行動、套用即時機器學習 (ML) 推論,以及將資料複製到其他平台。這樣一來,您就能將 BigQuery 做為應用程式決策邏輯的事件驅動資料處理引擎。
下圖顯示常見的連續查詢工作流程:
用途
以下是您可能想使用連續查詢的常見用途:
- 個人化顧客互動服務:使用生成式 AI 建立專為每次顧客互動量身打造的訊息。
- 異常偵測:建構解決方案,讓您即時對複雜資料執行異常和威脅偵測,以便更快應對問題。
- 可自訂的事件導向管道:搭配使用持續查詢整合和 Pub/Sub,根據傳入的資料觸發下游應用程式。
- 資料擴充和實體擷取:使用連續查詢,透過 SQL 函式和 ML 模型執行即時資料擴充和轉換。
- 反向擷取、轉換和載入 (ETL):即時執行反向 ETL,將資料匯入其他更適合低延遲應用程式服務的儲存系統。舉例來說,您可以分析或強化寫入 BigQuery 的事件資料,然後將資料串流至 Bigtable,供應用程式提供服務。
支援的作業
持續查詢支援下列作業:
- 執行
INSERT
陳述式,將連續查詢中的資料寫入 BigQuery 資料表。 執行
EXPORT DATA
陳述式,將持續查詢輸出內容發布至 Pub/Sub 主題。詳情請參閱將資料匯出至 Pub/Sub。您可以透過 Pub/Sub 主題使用資料,例如使用 Dataflow 執行串流分析,或在應用程式整合工作流程中使用資料。
執行
EXPORT DATA
陳述式,將資料從 BigQuery 匯出至 Bigtable 資料表。詳情請參閱將資料匯出至 Bigtable。呼叫下列生成式 AI 函式:
您必須透過 Vertex AI 模型建立 BigQuery ML 遠端模型,才能使用這項函式。
呼叫下列 AI 函式:
如要使用這些函式,您必須透過 Cloud AI API 建立 BigQuery ML 遠端模型。
使用
ML.NORMALIZER
函式正規化數值資料。使用無狀態 GoogleSQL 函式,例如轉換函式。在無狀態函式中,系統會獨立處理資料表中的每一列。
使用
APPENDS
變更記錄函式,從特定時間點開始處理連續查詢。
授權
執行持續查詢作業時使用的Google Cloud 存取權杖,如果是透過使用者帳戶產生,存留時間 (TTL) 為兩天。因此這類工作會在兩天後停止執行。服務帳戶產生的存取權杖可執行較長時間,但仍須遵守查詢執行時間上限。詳情請參閱「透過服務帳戶執行持續查詢」。
位置
下列地區支援連續查詢:
地區說明 | 地區名稱 | 詳細資料 | |
---|---|---|---|
美洲 | |||
愛荷華州 | us-central1 |
|
|
蒙特婁 | northamerica-northeast1 |
|
|
北維吉尼亞州 | us-east4 |
||
奧勒岡州 | us-west1 |
|
|
聖保羅 | southamerica-east1 |
|
|
南卡羅來納州 | us-east1 |
||
美國多區域 | us |
||
亞太地區 | |||
德里 | asia-south2 |
||
香港 | asia-east2 |
||
雅加達 | asia-southeast2 |
||
孟買 | asia-south1 |
||
首爾 | asia-northeast3 |
||
新加坡 | asia-southeast1 |
||
雪梨 | australia-southeast1 |
||
台灣 | asia-east1 |
||
東京 | asia-northeast1 |
||
歐洲 | |||
比利時 | europe-west1 |
|
|
歐盟多區域 | eu |
||
法蘭克福 | europe-west3 |
|
|
倫敦 | europe-west2 |
|
|
荷蘭 | europe-west4 |
|
限制
持續查詢必須遵循以下限制:
- BigQuery 持續查詢不會維護擷取資料的狀態。不支援依賴狀態的常見作業,例如
JOIN
、匯總函式或視窗函式。 您無法在持續查詢中使用下列 SQL 功能:
持續查詢不支援處理變更資料擷取 (CDC) UPSERT 資料。
持續查詢不支援萬用字元資料表做為資料來源。
連續查詢不支援外部資料表做為資料來源。
持續查詢不支援將 INFORMATION_SCHEMA 檢視區塊做為資料來源。
持續查詢不支援下列 BigQuery 安全性功能:
將資料匯出至 Bigtable 時,只能以 Bigtable 執行個體為目標,且這些執行個體必須位於與 BigQuery 資料集相同的Google Cloud 區域界線內,而該資料集包含您要查詢的資料表。詳情請參閱位置注意事項。由於 Pub/Sub 是全域資源,因此將資料匯出至 Pub/Sub 時不受這項限制。
您無法從資料畫布執行連續查詢。
持續查詢工作執行期間,您無法修改持續查詢中使用的 SQL。詳情請參閱「修改連續查詢的 SQL」。
如果持續查詢工作處理傳入資料的速度落後,且輸出浮水印延遲超過 48 小時,就會失敗。您可以再次執行查詢,並使用
APPENDS
變更記錄函式,從您停止先前連續查詢工作時的時間點繼續處理。詳情請參閱「從特定時間點開始持續查詢」。以使用者帳戶設定的持續查詢最多可執行兩天。透過服務帳戶設定的持續查詢最多可執行 150 天。達到查詢執行時間上限時,查詢會失敗並停止處理傳入資料。
雖然持續查詢是使用 BigQuery 可靠性功能建構而成,但偶爾還是會發生暫時性問題。問題可能會導致系統自動重新處理部分連續查詢,進而造成連續查詢輸出中出現重複資料。請設計下游系統來處理這類情況。
預訂限制
- 您必須建立 Enterprise 或 Enterprise Plus 版本預留,才能執行連續查詢。連續查詢不支援隨選運算計費模式。
- 建立
CONTINUOUS
預留項目指派時,相關聯的預留項目最多只能有 500 個運算單元。如要提高這項限制,請傳送電子郵件至 [email protected]。 - 即使保留項目已設定為共用閒置運算單元,持續查詢保留項目指派作業也不會共用閒置運算單元。
- 您無法在同一個預留項目中,建立使用不同工作類型的預留項目指派,做為連續查詢預留項目指派。
- 您無法設定持續查詢的並行作業。BigQuery 會根據使用
CONTINUOUS
工作類型的可用保留項目指派作業,自動決定可同時執行的連續查詢數量。 - 使用相同預留量執行多項連續查詢時,個別工作可能無法公平分配可用資源,如BigQuery 公平性所定義。
自動調度運算單元
持續查詢可使用運算單元自動調度功能,動態調整分配的容量,以因應工作負載。隨著持續查詢工作負載增加或減少,BigQuery 會動態調整運算單元。
持續查詢開始執行後,會主動監聽傳入資料,這會耗用時段資源。如果保留項目有持續查詢正在執行,就不會縮減至零個時段。不過,如果持續查詢處於閒置狀態,主要只是監聽傳入資料,預期會消耗最少的時段,通常約 1 個時段。
定價
持續查詢會採用 BigQuery 容量運算定價,並以運算單元為單位計算。如要執行連續查詢,您必須擁有使用 Enterprise 或 Enterprise Plus 版本的預留位置,以及使用 CONTINUOUS
工作類型的預留位置指派。
使用其他 BigQuery 資源 (例如資料擷取和儲存空間) 時,系統會按照這份定價表中的費率計費。
如果使用其他服務接收連續查詢結果,或在連續查詢處理期間呼叫其他服務,系統會按照這些服務的公布費率收費。如要瞭解其他 Google Cloud 服務的定價,請參閱下列主題:
後續步驟
請嘗試建立連續查詢。