持續查詢簡介
本文件說明 BigQuery 持續查詢。
BigQuery 持續查詢是會持續執行的 SQL 陳述式,持續查詢可讓您即時在 BigQuery 中分析傳入的資料。您可以將持續性查詢產生的輸出資料列插入 BigQuery 資料表,或匯出至 Pub/Sub 或 Bigtable。持續性查詢可以使用下列任一方法,處理已寫入 標準 BigQuery 資料表的資料:
您可以使用持續查詢執行時間敏感的作業,例如建立洞察並立即採取行動、套用即時機器學習 (ML) 推論,以及將資料複製到其他平台。這樣一來,您就能將 BigQuery 做為應用程式決策邏輯的事件驅動資料處理引擎。
下圖顯示常見的持續查詢工作流程:
用途
以下是可能需要使用持續查詢的常見用途:
- 個人化客戶互動服務:使用生成式 AI 為每位客戶互動建立客製化訊息。
- 異常偵測:建立解決方案,讓您即時對複雜資料執行異常偵測和威脅偵測,以便更快速地回應問題。
- 可自訂的事件導向管道:使用持續查詢整合 Pub/Sub,根據傳入的資料觸發下游應用程式。
- 資料增強和實體擷取:使用持續查詢,透過 SQL 函式和機器學習模型執行即時資料增強和轉換。
- 反向擷取、轉換和載入 (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 |
|
|
南卡羅來納州 | 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 時,您只能指定與 BigQuery 資料集 (包含您要查詢的資料表) 位於相同Google Cloud 區域邊界的 Bigtable 例項。詳情請參閱「位置注意事項」。這項限制不適用於將資料匯出至 Pub/Sub,因為 Pub/Sub 是全球資源。
您無法透過資料資訊圖執行持續查詢。
在持續查詢工作執行期間,您無法修改持續查詢中使用的 SQL。詳情請參閱「修改持續性查詢的 SQL」。
如果持續查詢工作處理傳入資料的速度落後,且輸出水印延遲超過 48 小時,則會失敗。您可以再次執行查詢,並使用
APPENDS
變更記錄函式,從先前停止的持續查詢工作停止時點開始繼續處理。詳情請參閱「從特定時間點開始執行持續查詢」。使用者帳戶設定的持續查詢最多可執行兩天。使用服務帳戶設定的持續查詢最多可執行 150 天。達到查詢的最大執行時間時,查詢會失敗並停止處理傳入的資料。
雖然持續性查詢是使用 BigQuery 可靠性功能建構,但偶爾仍可能發生暫時性問題。問題可能會導致系統自動重新處理部分持續性查詢,進而導致持續性查詢輸出內容中出現重複資料。請設計下游系統來處理這類情況。
預訂限制
- 您必須建立 Enterprise 或 Enterprise Plus 版本的預留,才能執行持續查詢。連續查詢不支援隨選運算計費模式。
- 建立
CONTINUOUS
預留指派時,相關聯的預留項目最多只能有 500 個運算單元。如要要求提高這項限制,請來信至 bq-continuous-queries-feedback@google.com。 - 即使保留項目已設定為共用閒置的運算單元,持續查詢保留項目指派作業也不會共用。
- 您無法在同一個預留項目中,為連續查詢預留指派建立使用不同工作類型的預留指派。
- 您無法設定持續查詢並行作業。BigQuery 會根據使用
CONTINUOUS
工作類型的可用保留項目指派,自動決定可同時執行的連續查詢數量。 - 使用相同預留空間執行多項持續查詢時,個別工作可能無法依 BigQuery 公平性 定義公平分配可用資源。
自動調度運算單元
持續性查詢可以使用運算單元自動調度功能,動態調整已分配的容量,以便配合工作負載。隨著持續查詢的工作負載增加或減少,BigQuery 會動態調整運算單元。
持續查詢開始執行後,會主動監聽傳入的資料,這會消耗時段資源。雖然含有執行中的持續查詢的預留作業不會縮減至零個空格,但主要用於聆聽傳入資料的閒置持續查詢,應會耗用最少的空格,通常約為 1 個空格。
定價
持續查詢會使用 BigQuery 運算容量計算價格,以運算單元為單位。如要執行持續查詢,您必須具備使用 Enterprise 或 Enterprise Plus 版本的預留,以及使用 CONTINUOUS
工作類型的預留指派。
使用其他 BigQuery 資源 (例如資料攝入和儲存空間) 時,系統會按照 BigQuery 定價中的費率計費。
其他服務的使用量 (接收連續查詢結果或在連續查詢處理期間呼叫) 會依據該服務的發布費率收費。如要瞭解持續查詢使用的其他 Google Cloud 服務定價,請參閱下列主題:
後續步驟
請嘗試建立持續性查詢。