使用 Gemini 輔助功能編寫查詢
本文件說明如何使用 Gemini in BigQuery 的 AI 輔助功能,透過 SQL 查詢和 Python 程式碼查詢資料。Gemini in BigQuery 可生成及說明查詢和程式碼、在您輸入內容時補全查詢和程式碼,以及修正程式碼錯誤。
如要直接在 Google Cloud 控制台按照逐步指南操作,請按一下「Guide me」(逐步引導):
未經您明確許可,Gemini for Google Cloud 不會將您的提示或回覆用做模型訓練資料。如要進一步瞭解 Google 如何使用您的資料,請參閱「Gemini for Google Cloud 如何使用您的資料」一文。
Gemini in BigQuery 僅支援英文提示。
本文適用於使用 SQL 查詢和 BigQuery 中的 Colab Enterprise 筆記本的資料分析師、資料科學家和資料開發人員。本教學課程假設您瞭解如何在 BigQuery Studio 環境中查詢資料,或如何使用 Python 筆記本分析 BigQuery 資料。
事前準備
- 確認已為 Google Cloud 專案設定 Gemini in BigQuery。 這個步驟通常由管理員完成。 完成本節的其餘步驟前,Gemini in BigQuery 功能可能會停用或無法使用。
- 如要使用 Gemini Cloud Assist,在 Gemini Cloud Assist 窗格中編寫程式碼,您也必須按照「設定 Gemini Cloud Assist」一文中的步驟操作。
如要在 BigQuery 的 Colab Enterprise 筆記本中使用 Gemini 解說及修正 Python 程式碼,請務必按照「為專案設定 Gemini in Colab Enterprise」一文中的步驟操作。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
前往 Google Cloud 控制台的「BigQuery Studio」頁面。
在 BigQuery 工具列中,按一下「pen_spark Gemini」Gemini。
在功能清單中,確認已選取下列功能:
「Gemini in SQL query」(SQL 查詢專用 Gemini) 清單:
- 自動完成 (預先發布版)。在查詢編輯器中輸入內容時,Gemini 會根據目前查詢的情境,建議合理的後續步驟,或協助您反覆調整查詢。
- 自動生成:您可以在 BigQuery 查詢編輯器中,使用自然語言註解提示 Gemini in BigQuery 生成 SQL 查詢。
- SQL 生成工具。您可以在工具中輸入自然語言文字,生成 SQL 查詢,並選擇修正查詢結果、選擇資料表來源和比較結果。
- 說明。您可以提示 Gemini in BigQuery,以自然語言說明 SQL 查詢。
Python 筆記本專用 Gemini 清單:
- 程式碼自動完成 (預先發布版)。Gemini 會根據筆記本中的內容,提供符合情境的適當建議。
- 生成程式碼:您可以使用自然語言陳述式或問題,提示 Gemini 生成 Python 程式碼。
如要完成本文中的工作,請確認您具備必要的身分與存取權管理 (IAM) 權限。
必要的角色
如要取得使用 Gemini 輔助撰寫查詢所需的權限,請要求管理員授予您專案的「Gemini for Google Cloud 使用者」 (roles/cloudaicompanion.user
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這個預先定義的角色具備在 Gemini 協助下撰寫查詢所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要使用 Gemini 輔助功能撰寫查詢,必須具備下列權限:
-
cloudaicompanion.entitlements.get
-
cloudaicompanion.instances.completeTask
-
說明 SQL 查詢:
cloudaicompanion.companions.generateChat
-
補全 SQL 或 Python 程式碼:
cloudaicompanion.instances.completeCode
-
生成 SQL 或 Python 程式碼:
cloudaicompanion.instances.generateCode
如要進一步瞭解 BigQuery 中的 IAM 角色和權限,請參閱「IAM 簡介」。
生成 SQL 查詢
如要根據資料結構定義產生 SQL 查詢,請使用自然語言陳述句或問題 (也稱為提示),要求 Gemini in BigQuery 執行這項操作。即使您沒有編寫程式碼、不太瞭解資料結構定義,或只具備 GoogleSQL 語法的基礎知識,BigQuery 中的 Gemini 都可以生成 SQL,協助您探索資料。
使用 SQL 生成工具
SQL 生成工具可讓您使用自然語言,針對最近查看或查詢的資料表生成 SQL 查詢。您也可以使用這項工具修改現有查詢,以及手動指定要產生 SQL 的資料表。
如要使用 SQL 生成工具,請按照下列步驟操作:
前往 Google Cloud 控制台的「BigQuery Studio」頁面。
在查詢編輯器旁,按一下「pen_spark SQL 生成工具」。
在「透過 Gemini 生成 SQL」對話方塊中,輸入您最近查看或查詢的資料表相關自然語言提示。舉例來說,如果您最近查看了
bigquery-public-data.austin_bikeshare.bikeshare_trips
資料表,可以輸入以下內容:Show me the duration and subscriber type for the ten longest trips.
點按「生成」。
生成的 SQL 查詢大致如下:
SELECT subscriber_type, duration_sec FROM `bigquery-public-data.san_francisco_bikeshare.bikeshare_trips` ORDER BY duration_sec DESC LIMIT 10;
查看生成的 SQL 查詢,然後執行下列任一操作:
- 如要接受生成的 SQL 查詢,請按一下「插入」,將陳述式插入查詢編輯器。接著點選「執行」,即可執行建議的 SQL 查詢。
- 如要編輯提示,請按一下「編輯」,然後修改或取代初始提示。編輯提示後,按一下「更新」即可產生新的查詢。
- 如要更新用來生成建議 SQL 查詢的資料表來源,請按一下「編輯資料表來源」,選取適當的核取方塊,然後按一下「套用」。
- 如要查看生成查詢的自然語言摘要,請按一下「查詢摘要」。
- 如要修正建議的 SQL 查詢,請在「修正」欄位中輸入修正內容,然後點選
limit to 1000
即可限制查詢結果數量。如要比較查詢的變更,請勾選「顯示差異」核取方塊。
「修正」。舉例來說,輸入 - 如要關閉建議查詢,請關閉 SQL 生成工具。
關閉 SQL 生成工具
如要瞭解如何關閉 SQL 生成工具,請參閱「關閉 Gemini 查詢輔助功能」。
根據註解生成 SQL 查詢
您可以在查詢編輯器中,以註解形式描述想要的查詢,藉此生成 SQL。
前往 Google Cloud 控制台的「BigQuery Studio」頁面。
在查詢編輯器中,點選
。 「SQL query」(SQL 查詢) 在查詢編輯器中,針對您最近查看或查詢的資料表撰寫 SQL 註解。舉例來說,如果您最近查看了
bigquery-public-data.austin_bikeshare.bikeshare_trips
資料表,可以撰寫以下註解:# Show me the duration and subscriber type for the ten longest trips.
按下 Enter 鍵 (如使用 macOS 裝置,則按 Return 鍵)。
建議的 SQL 查詢大致如下:
# Show me the duration and subscriber type for the ten longest trips SELECT duration_sec, subscriber_type AVG(duration_minutes) AS average_trip_length FROM `bigquery-public-data.austin_bikeshare.bikeshare_trips` ORDER BY duration_sec LIMIT 10;
如要接受建議,請按下 Tab 鍵。
透過 Gemini Cloud Assist 生成 SQL 查詢
您可以透過 Google Cloud 控制台的「Cloud Assist」面板,在 BigQuery 中生成 SQL 查詢。
必須先啟用 Gemini Cloud Assist,才能透過 Gemini Cloud Assist 對話生成 SQL 查詢。詳情請參閱「設定 Gemini Cloud Assist」的說明。
前往 Google Cloud 控制台的「BigQuery Studio」頁面。
在查詢編輯器中,點選
,開啟新的 SQL 查詢。 「SQL query」(SQL 查詢) 在 Google Cloud 工具列,點選 spark「Open or close Gemini AI chat」,開啟 Gemini Cloud Assist 對話。
在「Enter a prompt」(輸入提示) 欄位輸入提示,以便生成 SQL 查詢。例如:
Generate a SQL query to show me the duration and subscriber type for the ten longest trips.
點選「Send prompt」(傳送提示)。回覆中的 SQL 查詢大致如下:
SELECT subscriber_type, duration_sec FROM `bigquery-public-data.san_francisco_bikeshare.bikeshare_trips` ORDER BY duration_sec DESC LIMIT 10; ```
查看生成的 SQL 查詢。
如要執行生成的 SQL 查詢,請點選
「Copy to clipboard」(複製到剪貼簿),將生成的程式碼貼到查詢編輯器,然後點選 「Run」(執行)。
SQL 生成功能使用提示
下列提示可提升 Gemini in BigQuery 提供的建議品質:
- 如要手動指定要使用的資料表,可以輸入完整的資料表名稱,並在前後加上反引號
`
,例如`PROJECT.DATASET.TABLE`
。 - 如果資料欄名稱或語意關係很複雜或不明確,可以在提示中提供背景資訊,引導 Gemini 提供切合需求的答案。舉例來說,若要讓生成的查詢參照特定資料欄名稱,請說明該資料欄名稱,以及該資料欄與所需答案的關聯性。為了鼓勵答案參照「生命週期值」或「毛利率」等複雜字詞,請描述該概念及其與資料的關聯性,以改善 SQL 產生結果。
- 根據註解生成 SQL 時,可以將提示分成多行,並在每行開頭加上
#
字元。 - 系統生成 SQL 查詢時會考量資料欄說明。為提高準確率,請在結構定義中新增資料欄說明。如要進一步瞭解資料欄說明,請參閱「指定結構定義」中的資料欄說明一節。
補全 SQL 查詢
SQL 補全功能會嘗試根據查詢編輯器中的內容,提供符合情境的適當建議。在您輸入內容時,Gemini 會根據目前查詢的情境,建議合理的後續步驟,或協助您反覆調整查詢。
如要使用 Gemini in BigQuery 的 SQL 補全功能,請按照下列步驟操作:
前往 Google Cloud 控制台的「BigQuery Studio」頁面。
在查詢編輯器中,複製以下內容:
SELECT subscriber_type , EXTRACT(HOUR FROM start_time) AS hour_of_day , AVG(duration_minutes) AS avg_trip_length FROM `bigquery-public-data.austin_bikeshare.bikeshare_trips`
錯誤訊息指出
subscriber_type
並未分組或匯總。這情況很常見,您需要協助來修正查詢。在
subscriber_type
的結尾按下空格鍵。建議的查詢修正內容可能會類似以下文字:
GROUP BY subscriber_type, hour_of_day;
您也可以按下 Enter 鍵 (macOS 裝置則按 Return 鍵) 來生成建議。
如要接受建議,請按下 Tab 鍵,或將遊標懸停在建議文字上,然後點閱其他建議。如要關閉建議,請按下 Esc 鍵或繼續輸入內容。
說明 SQL 查詢
您可以提示 Gemini in BigQuery,用自然語言說明 SQL 查詢。此說明功能可協助您瞭解,語法、基礎結構定義和業務情境因查詢長度或複雜性而難以評估的查詢。
如要請 Gemini 說明 SQL 查詢,請按照下列步驟操作:
前往 Google Cloud 控制台的「BigQuery Studio」頁面。
在查詢編輯器中,開啟或貼上要讓 Gemini 說明的查詢。
反白選取要讓 Gemini in BigQuery 說明的查詢。
依序點按 astrophotography_mode「Gemini」與「Explain this query」(說明這項查詢)。
SQL 說明會顯示在「Cloud」面板中。
生成 Python 程式碼
您可以透過自然語言陳述式或問題,要求 Gemini in BigQuery 生成 Python 程式碼。Gemini in BigQuery 會從 BigQuery 專案直接提取相關資料表名稱,並提供一或多個 Python 程式碼建議,生成可執行的個人化 Python 程式碼。
使用 Python 程式碼生成工具
在以下範例中,您會產生 BigQuery 公開資料集的程式碼 bigquery-public-data.ml_datasets.penguins
。
前往 Google Cloud 控制台的「BigQuery Studio」頁面。
在查詢編輯器的分頁列中,按一下「SQL 查詢」
旁的下拉式箭頭 ,然後按一下「Notebook」(筆記本)。系統會開啟新筆記本,其中包含針對
bigquery-public-data.ml_datasets.penguins
公開資料集執行範例查詢的儲存格。如要插入新的程式碼儲存格,請在工具列中按一下「程式碼」
。新的程式碼儲存格會顯示「開始使用 AI 編寫或生成程式碼」訊息。在新的程式碼儲存格中,點按「生成」。
在「Generate」(生成) 編輯器中,輸入下列自然語言提示:
Using bigquery magics, query the `bigquery-public-data.ml_datasets.penguins` table
按下 Enter 鍵 (如使用 macOS 裝置,則按 Return 鍵)。
建議的 Python 程式碼大致如下:
%%bigquery SELECT * FROM `bigquery-public-data.ml_datasets.penguins` LIMIT 10
如要執行程式碼,請按下「Run cell」(執行儲存格)
。
使用 Gemini Cloud Assist 生成 Python 程式碼
您可以在 Google Cloud 控制台使用 Gemini Cloud Assist,在 BigQuery 中生成 Python 程式碼。必須先啟用 Gemini Cloud Assist,才能透過 Gemini Cloud Assist 生成程式碼。詳情請參閱「設定 Gemini Cloud Assist」的說明。
前往 Google Cloud 控制台的「BigQuery Studio」頁面。
在查詢編輯器的分頁列中,按一下「SQL 查詢」
旁的下拉式箭頭 ,然後按一下「Notebook」(筆記本)。在 Google Cloud 工具列,點選 spark「Open or close Gemini AI chat」,開啟 Gemini Cloud Assist 對話。
在「Enter a prompt」(輸入提示) 欄位輸入提示,以便生成 Python 程式碼。例如:
Generate python code to query the `bigquery-public-data.ml_datasets.penguins` table using bigquery magics
按一下「傳送提示」
。 Gemini 會傳回類似下列的 Python 程式碼:%%bigquery SELECT * FROM `bigquery-public-data.ml_datasets.penguins` LIMIT 10
查看生成的 Python 程式碼。
如要執行 Python 程式碼,請點選
「Copy to clipboard」(複製到剪貼簿),將生成的程式碼貼到查詢編輯器,然後點選 「Run」(執行)。
產生 BigQuery DataFrames 程式碼
您可以使用 Gemini in BigQuery 生成 BigQuery DataFrame 程式碼。如要請 Gemini 在生成的程式碼中使用 BigQuery DataFrame,請在提示中表達意圖。舉例來說,您可以從「使用 bigframes」或「利用 BigQuery DataFrames」開始提示。
BigQuery DataFrames 提供兩個程式庫:
- bigframes.pandas,提供與 pandas 相容的 API,用於進行資料分析。
- bigframes.ml,提供類似 scikit-learn 的機器學習 (ML) API。
Gemini 程式碼生成功能已針對 bigframes.pandas 程式庫進行最佳化。
如要進一步瞭解 BigQuery DataFrames,以及使用 BigQuery DataFrames 時所需的權限,請參閱「BigQuery DataFrames 權限」。BigQuery DataFrames 是開放原始碼套件。
您可以執行 pip install --upgrade bigframes
安裝最新版本。
在以下範例中,您會產生 BigQuery 公開資料集的程式碼 bigquery-public-data.ml_datasets.penguins
。
前往 Google Cloud 控制台的「BigQuery Studio」頁面。
在查詢編輯器的分頁列中,按一下「SQL 查詢」
旁的下拉式箭頭 ,然後按一下「Notebook」(筆記本)。系統會開啟新筆記本。
如要插入新的程式碼儲存格,請在工具列中按一下「程式碼」
。新的程式碼儲存格會顯示「開始使用 AI 編寫或生成程式碼」訊息。 在新的程式碼儲存格中,點按「生成」。
在「Generate」(生成) 編輯器中,輸入下列自然語言提示:
Read the penguins table from the BigQuery public data using bigframes
按下 Enter 鍵 (如使用 macOS 裝置,則按 Return 鍵)。
建議的 Python 程式碼大致如下:
import bigframes.pandas as bpd # Read the penguins table from the BigQuery public data using bigframes result = bpd.read_gbd("bigquery-public-data.ml_datasets.penguins")
如要執行程式碼,請按下「Run cell」(執行儲存格)
。如要預覽結果,請在工具列中點按「程式碼」
,插入新的程式碼儲存格。在新儲存格中呼叫
peek()
方法 (例如result.peek()
),然後按下 鍵並點選「執行儲存格」。畫面上會顯示多列資料。
補全 Python 程式碼
Python 程式碼補全功能會嘗試根據查詢編輯器中的內容,提供符合情境的適當建議。在您輸入內容時,BigQuery 中的 Gemini 會根據目前程式碼的情境,建議合理的後續步驟,或協助您反覆調整程式碼。
如要使用 Gemini in BigQuery 的 Python 程式碼補全功能,請按照下列步驟操作:
前往 Google Cloud 控制台的「BigQuery Studio」頁面。
在查詢編輯器的分頁列中,按一下「SQL 查詢」
旁的下拉式箭頭 ,然後按一下「Notebook」(筆記本)。系統會開啟新筆記本,其中包含的儲存格會顯示針對
bigquery-public-data.ml_datasets.penguins
公開資料集的查詢範例。在編輯器中開始輸入 Python 程式碼。例如
%%bigquery
。Gemini in BigQuery 會在您輸入內容時,建議內嵌程式碼。如要接受建議,請按下 Tab 鍵。
說明 Python 程式碼
您可以使用 Gemini in BigQuery,說明 Colab Enterprise 筆記本中的 Python 程式碼。
取得說明後,您可以在提示對話方塊中提出更多問題,以便進一步瞭解程式碼。
如要請 Gemini 說明筆記本中的 Python 程式碼,請按照下列步驟操作:
前往 Google Cloud 控制台的「BigQuery Studio」頁面。
在「Explorer」窗格中,展開專案和「Notebooks」資料夾。
按一下要開啟的筆記本。
醒目顯示要瞭解的 Python 儲存格。
依序點選 spark「Gemini」和「說明程式碼」。
程式碼說明會顯示在儲存格旁邊的面板中。
選用:如要進一步瞭解程式碼,請在「在這裡輸入提示」欄位中提出問題。
修正及說明 Python 錯誤
您可以使用 Gemini in BigQuery,修正並說明 Colab Enterprise 筆記本中的 Python 程式碼錯誤。
如要使用 Gemini 輔助功能修正或瞭解程式碼錯誤,請按照下列步驟操作:
前往 Google Cloud 控制台的「BigQuery Studio」頁面。
在「Explorer」窗格中,展開專案和「Notebooks」資料夾。
按一下要開啟的筆記本。
在筆記本的程式碼儲存格中輸入含有錯誤的程式碼,然後執行該儲存格。舉例來說,您可能會輸入
print(1
,缺少右括號。程式碼儲存格執行完畢後,筆記本會在程式碼儲存格下方列印錯誤訊息。如果已在 Python 筆記本中啟用 Gemini,且 Gemini 建議修正或說明錯誤,系統會顯示下列其中一個選項:
- 如果是 Python 語法錯誤,系統會顯示「修正錯誤」選項。
- 如果是其他類型的錯誤,系統會顯示「說明錯誤」選項。
如要修正語法錯誤,請按照下列步驟操作:
按一下「修正錯誤」。
Gemini 會建議如何修正錯誤。
評估建議,然後執行下列任一操作:
- 如要接受建議,請按一下「勾號」「接受建議」。
- 如要拒絕建議,請依序點按「關閉」和「拒絕建議」。
如要修正所有其他類型的錯誤,請按照下列步驟操作:
按一下「說明錯誤」。
系統會開啟面板,說明錯誤並建議變更。
選用:如要進一步瞭解錯誤,請在「在此輸入提示」欄位中提問。
如要接受建議的變更,請按一下「library_add」library_add「新增程式碼儲存格」。
生成 PySpark 程式碼
您可以要求 Gemini Code Assist 在筆記本中生成 PySpark 程式碼。Gemini Code Assist 會擷取並使用相關的 BigQuery 和 Dataproc Metastore 資料表及其結構定義,生成程式碼回應。Gemini Code Assist 具備結構定義知識,可避免產生錯覺,並建議聯結鍵和資料欄類型。
如要在筆記本中生成 Gemini Code Assist 程式碼,請按照下列步驟操作:
按一下工具列中的「+ 程式碼」,插入新的程式碼儲存格。 新的程式碼儲存格會顯示
Start coding or generate with AI
。 點選「生成」。在「生成」編輯器中輸入自然語言提示,然後按一下
enter
。請務必在提示中加入關鍵字spark
或pyspark
。提示範例:
create a spark dataframe from order_items and filter to orders created in 2024
輸出內容範例:
spark.read.format("bigquery").option("table", "sqlgen-testing.pysparkeval_ecommerce.order_items").load().filter("year(created_at) = 2024").createOrReplaceTempView("order_items") df = spark.sql("SELECT * FROM order_items")
使用 Gemini Code Assist 生成程式碼的提示
如要讓 Gemini Code Assist 擷取相關資料表和結構定義,請為 Dataproc Metastore 執行個體啟用 Data Catalog 同步處理功能。
務必確認使用者帳戶有權存取 Data Catalog 的查詢資料表,做法是指派
DataCatalog.Viewer
角色。
關閉 Gemini 查詢輔助功能
如要關閉 Gemini in BigQuery 的特定功能,請按照下列步驟操作:
前往 Google Cloud 控制台的「BigQuery Studio」頁面。
在 BigQuery 工具列中,點選
pen_spark 「Gemini」圖示 。從清單中移除要關閉的查詢輔助功能。
如要瞭解如何關閉 Gemini in BigQuery,請參閱「關閉 Gemini in BigQuery」。
停用 Gemini in Colab Enterprise
如要為 Google Cloud 專案停用 Gemini in Colab Enterprise,管理員必須停用 Gemini for Google Cloud API。請參閱「停用服務」。
如要為特定使用者停用 Gemini in Colab Enterprise,管理員必須撤銷該使用者的「Gemini for Google Cloud 使用者」(roles/cloudaicompanion.user
) 角色。請參閱「撤銷單一身分與存取權管理角色」。
提供意見回饋
前往 Google Cloud 控制台的「BigQuery Studio」頁面。
在 BigQuery 工具列中,點選
pen_spark 「Gemini」圖示 。按一下 [傳送意見]。
協助我們改良建議功能
您可以將提交至預先發布版功能的提示資料分享給 Google,協助我們提升 Gemini 建議的品質。
如要分享提示資料,請按照下列步驟操作:
前往 Google Cloud 控制台的「BigQuery Studio」頁面。
在 BigQuery 工具列中,點選
pen_spark 「Gemini」圖示 。選取「Share data to improve Gemini in BigQuery」(共用資料,協助改良 Gemini in BigQuery)。
在「Data Use Settings」(資料使用設定) 對話方塊中,更新資料使用設定。
資料分享設定會套用至整個專案,且只有具備 serviceusage.services.enable
和 serviceusage.services.list
IAM 權限的專案管理員能夠設定。如要進一步瞭解「信任的測試人員」計畫的資料使用方式,請參閱「Gemini for Google Cloud 『信任的測試人員』計畫」。
Gemini 和 BigQuery 資料
為提供準確的結果,Gemini in BigQuery 需要存取您儲存在 BigQuery 的客戶資料和中繼資料,以便提供強化功能。詳情請參閱「Gemini in BigQuery 如何使用您的資料」一文。
定價
如要瞭解這項功能的定價詳情,請參閱 Gemini in BigQuery 定價總覽。
配額與限制
如要瞭解這項功能的配額和限制,請參閱「Gemini in BigQuery 配額」。