在 BigQuery 中使用 Gemini 模型
GCP
課程概述
BigQuery 跟 Gemini 整合得很深,你可以直接在 SQL 查詢裡呼叫 Gemini 大語言模型。換句話說,資料表裡每一列文字都能拿來做 AI 分析,像是情感分類、內容摘要、實體抽取、翻譯,全部在 BigQuery 裡搞定,不用把資料搬出資料倉儲。這門課就帶你把 ML.GENERATE_TEXT 函式的用法摸熟。
你將學到
- 在 BigQuery 中建立連接 Gemini 的遠端模型
- 使用
ML.GENERATE_TEXT對表格資料進行文字生成 - 設計 SQL 內嵌 Prompt 進行批次分類與摘要
- 處理
ML.GENERATE_TEXT的回應結構與錯誤處理 - 控制 Gemini 呼叫的成本與流量
核心概念
BigQuery + Gemini 的架構
在 BigQuery 裡用 Gemini,架構是這樣:
- 建立 Cloud Resource Connection(連接 Vertex AI)
- 建立 Remote Model 指向 Gemini Endpoint
- 使用
ML.GENERATE_TEXT函式在 SQL 中呼叫模型
建立 Gemini 遠端模型
-- Step 1: 建立 BigQuery 與 Vertex AI 的連線
-- (需先在 BigQuery Admin 中建立 Cloud Resource Connection)
-- Step 2: 建立指向 Gemini 的遠端模型
CREATE OR REPLACE MODEL `dataset.gemini_model`
REMOTE WITH CONNECTION `project.region.connection`
OPTIONS(ENDPOINT = 'gemini-2.0-flash'); -- 亦可替換為 gemini-2.5-flash 等較新模型
ML.GENERATE_TEXT 函式
在 BigQuery 裡呼叫 Gemini,主要就靠這個函式:
SELECT
ml_generate_text_llm_result,
ml_generate_text_status,
prompt
FROM ML.GENERATE_TEXT(
MODEL `dataset.gemini_model`,
(SELECT
CONCAT('請將以下客戶評論分類為正面、中性或負面:', review_text) AS prompt
FROM `dataset.customer_reviews`
LIMIT 100),
STRUCT(
0.2 AS temperature,
1024 AS max_output_tokens,
TRUE AS flatten_json_output
)
);
常見應用場景
| 場景 | Prompt 範例 | 輸入資料 |
|---|---|---|
| 情感分類 | 「將此評論分類為正面/中性/負面」 | 客戶評論表 |
| 內容摘要 | 「用 50 字摘要以下文章」 | 新聞/文件表 |
| 實體抽取 | 「從此文本中抽取人名、地名和組織名」 | 非結構化文字 |
| 資料補全 | 「根據產品名稱推測其分類」 | 商品目錄表 |
| 翻譯 | 「將以下內容翻譯為繁體中文」 | 多語言資料表 |
回應結構
ML.GENERATE_TEXT 回傳的結果包含:
ml_generate_text_result— 完整的 JSON 回應(含內容與安全屬性,生成文字位於 predictions/content 元素內;flatten_json_output = FALSE時回傳)ml_generate_text_llm_result— Gemini 生成的純文字結果(STRING,flatten_json_output = TRUE時回傳)ml_generate_text_status— 呼叫狀態,空字串表示成功
建議把 flatten_json_output 設成 TRUE,輸出結構會簡單很多,後面用 SQL 接著處理也省事。
實作重點
- 建立 Connection 後,須授予連線的服務帳戶
roles/aiplatform.user角色 - 批次處理大量資料時,先用
LIMIT小量測試 Prompt 效果再擴大規模 - 使用
SAFE.ML.GENERATE_TEXT可避免單一失敗的列導致整個查詢中斷 - 常見錯誤:忘記設定
flatten_json_output導致需要手動解析巢狀 JSON - 成本控制:每次
ML.GENERATE_TEXT呼叫都會算 Vertex AI API 的錢,所以記得加LIMIT和WHERE篩一下,別一口氣對整張大表打下去
Skill Badge 指引
Lab 連結:Work with Gemini Models in BigQuery — 完成此 lab 可獲得 Skill Badge
延伸學習
- Gemini 提升 BigQuery 生產力 — 更多 Gemini 在 BigQuery 中的實用技巧
- BigQuery ML 推論實戰 — BQML 遠端模型推論的完整流程
- Gemini 輔助數據分析 — Gemini 在 BigQuery Console 中的互動輔助功能
Study Jam:數據與 AI 基礎 — 11/12 完成
查看系列全覽 →