使用 Gemini 輔助功能編寫查詢

本文件說明如何使用 Gemini in BigQuery 的 AI 輔助功能,透過 SQL 查詢和 Python 程式碼查詢資料。Gemini in BigQuery 可生成查詢與程式碼、在您輸入內容時補全查詢與程式碼,以及說明查詢內容。


如要直接在 Google Cloud 控制台按照逐步指南操作,請按一下「Guide me」(逐步引導)

逐步引導


未經明確許可, Google Cloud 的 Gemini 不會使用提示或回覆內容做為訓練模型的資料。如要進一步瞭解 Google 如何使用您的資料,請參閱「Gemini for Google Cloud 如何使用您的資料」。

Gemini in BigQuery 僅支援英文提示。

本文件適用於使用 SQL 查詢和 BigQuery 中的 Colab Enterprise 筆記本的資料分析師、資料科學家和資料開發人員。本文假設您已瞭解如何在 BigQuery Studio 環境中查詢資料,或如何使用 Python 筆記本分析 BigQuery 資料。

事前準備

  1. 確認已為 Google Cloud 專案設定 Gemini in BigQuery。這個步驟通常由管理員執行。在完成本節的其他步驟前,Gemini in BigQuery 功能可能會關閉或無法使用。
  2. 如要使用 Gemini Cloud Assist,在 Gemini Cloud Assist 窗格中編寫程式碼,您必須按照「設定 Gemini Cloud Assist」中的步驟操作。

  3. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  4. 前往 Google Cloud 控制台的「BigQuery Studio」頁面。

    前往 BigQuery Studio

  5. 在 BigQuery 工具列中,按一下「pen_sparkGemini」。

    BigQuery 工具列中的 Gemini 按鈕。

  6. 在功能清單中,確認已選取下列功能:

    • 「Gemini in SQL query」(SQL 查詢專用 Gemini) 清單:

      • 自動補全 (預先發布版)。在您輸入查詢編輯器內容時,Gemini 會根據目前查詢的情境,建議合理的後續步驟,或協助您反覆調整查詢。
      • 自動產生。您可以使用 BigQuery 查詢編輯器中的自然語言註解,在 BigQuery 中提示 Gemini 生成 SQL 查詢。
      • SQL 產生工具。您可以在工具中輸入自然語言文字,產生 SQL 查詢,並提供修正查詢結果、選擇資料表來源和比較結果的選項。
      • 說明:您可以提示 BigQuery 中的 Gemini,以自然語言說明 SQL 查詢。
    • Python 筆記本專用 Gemini 清單:

      • 程式碼完成功能 (預先發布版)。Gemini 會根據筆記本中的內容,提供符合情境的適當建議。
      • 生成程式碼。您可以使用自然語言陳述式或問題,提示 Gemini 生成 Python 程式碼。
  7. 如要完成本文中的任務,請務必具備必要的 Identity and Access Management (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 查詢,您可以向 BigQuery 中的 Gemini 提供自然語言陳述式或問題,也就是所謂的提示。即使您沒有編寫程式碼、不太瞭解資料結構定義,或只具備 GoogleSQL 語法的基礎知識,BigQuery 中的 Gemini 仍可產生 SQL,協助您探索資料。

使用 SQL 生成工具

您可以使用 SQL 產生工具,以自然語言產生最近查詢或查看的資料表的 SQL 查詢。您也可以使用這項工具修改現有查詢,並手動指定要為其產生 SQL 的資料表。

如要使用 SQL 產生工具,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「BigQuery Studio」頁面。

    前往 BigQuery Studio

  2. 在查詢編輯器旁邊,按一下 pen_spark「SQL 生成工具」

    BigQuery 查詢編輯器中的 SQL 生成工具按鈕。

  3. 在「透過 Gemini 生成 SQL」對話方塊中,輸入最近查看或查詢的資料表的自然語言提示。舉例來說,如果您最近查看了 bigquery-public-data.austin_bikeshare.bikeshare_trips 資料表,可以輸入以下內容:

     Show me the duration and subscriber type for the ten longest trips.
    
  4. 點按「生成」

    系統產生的 SQL 查詢大致如下:

    SELECT
        subscriber_type,
        duration_sec
      FROM
          `bigquery-public-data.san_francisco_bikeshare.bikeshare_trips`
    ORDER BY
        duration_sec DESC
    LIMIT 10;
    
  5. 查看生成的 SQL 查詢,然後執行下列任一操作:

    • 如要接受生成的 SQL 查詢,請點選「插入」,將陳述式插入查詢編輯器。接著,您可以點選「執行」執行建議的 SQL 查詢。
    • 如要編輯提示,請按一下「編輯」,然後修改或取代初始提示。編輯完提示後,請按一下「更新」,產生新的查詢。
    • 如要更新用於產生建議 SQL 查詢的上下文資料表來源,請按一下「編輯資料表來源」,選取適當的核取方塊,然後按一下「套用」
    • 如要查看產生查詢的自然語言摘要,請按一下「查詢摘要」
    • 如要微調建議的 SQL 查詢,請在「Refine」欄位中輸入任何微調內容,然後按一下 「Refine」。舉例來說,輸入 limit to 1000 可限制查詢結果的數量。如要比較查詢的變更內容,請選取「Show diff」(顯示差異) 核取方塊。
    • 如要關閉建議的查詢,請關閉 SQL 生成工具。

關閉 SQL 生成工具

如要瞭解如何關閉 SQL 生成工具,請參閱「關閉 Gemini 查詢輔助功能」。

根據註解產生 SQL 查詢

您可以在查詢編輯器中,透過註解說明所需的查詢,產生 SQL。

  1. 前往 Google Cloud 控制台的「BigQuery Studio」頁面。

    前往 BigQuery Studio

  2. 在查詢編輯器中,點選 「SQL query」(SQL 查詢)

  3. 在查詢編輯器中,針對您最近查看或查詢的資料表撰寫 SQL 註解。舉例來說,如果您最近查看了 bigquery-public-data.austin_bikeshare.bikeshare_trips 資料表,可以撰寫以下註解:

    # Show me the duration and subscriber type for the ten longest trips.
    
  4. 按下 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;
    
  5. 如要接受建議,請按下 Tab 鍵。

透過 Gemini Cloud Assist 生成 SQL 查詢

您可以透過 Google Cloud 控制台的「Cloud Assist」面板,在 BigQuery 中生成 SQL 查詢。

必須先啟用 Gemini Cloud Assist,才能透過 Gemini Cloud Assist 對話生成 SQL 查詢。詳情請參閱「設定 Gemini Cloud Assist」的說明。

  1. 前往 Google Cloud 控制台的「BigQuery Studio」頁面。

    前往 BigQuery Studio

  2. 在查詢編輯器中,點選 「SQL query」(SQL 查詢),開啟新的 SQL 查詢。

  3. 在 Google Cloud 工具列,點選 spark「Open or close Gemini AI chat」,開啟 Gemini Cloud Assist 對話。

    BigQuery 工具列中的 Gemini Cloud Assist 按鈕。

  4. 在「Enter a prompt」(輸入提示) 欄位輸入提示,以便生成 SQL 查詢。例如:

    Generate a SQL query to show me the duration and subscriber type for the ten longest trips.
    
  5. 點選「Send prompt」(傳送提示)。回覆中的 SQL 查詢大致如下:

    SELECT
         subscriber_type,
         duration_sec
     FROM
         `bigquery-public-data.san_francisco_bikeshare.bikeshare_trips`
     ORDER BY
         duration_sec DESC
     LIMIT 10;
     ```
    
  6. 查看生成的 SQL 查詢。

  7. 如要執行生成的 SQL 查詢,請點選 「Copy to clipboard」(複製到剪貼簿),將生成的程式碼貼到查詢編輯器,然後點選 「Run」(執行)

SQL 生成功能使用提示

下列提示可提升 Gemini in BigQuery 提供的建議品質:

  • 如要手動指定要使用的資料表,可以輸入完整的資料表名稱,並在前後加上反引號 `,例如 `PROJECT.DATASET.TABLE`
  • 如果資料欄名稱或語意關係很複雜或不明確,可以在提示中提供背景資訊,引導 Gemini 提供切合需求的答案。舉例來說,若要讓生成的查詢參照特定資料欄名稱,請說明該資料欄名稱,以及該資料欄與所需答案的關聯性。為了鼓勵答案參照「生命週期值」或「毛利率」等複雜字詞,請描述該概念及其與資料的關聯性,以改善 SQL 產生結果。
  • 根據註解生成 SQL 時,可以將提示分成多行,並在每行開頭加上 # 字元。
  • 系統生成 SQL 查詢時會考量資料欄說明。為提高準確率,請在結構定義中新增資料欄說明。如要進一步瞭解資料欄說明,請參閱「指定結構定義」中的資料欄說明一節。

補全 SQL 查詢

SQL 補全功能會嘗試根據查詢編輯器中的內容,提供符合情境的適當建議。在您輸入內容時,Gemini 會根據目前查詢的情境,建議合理的後續步驟,或協助您反覆調整查詢。

如要使用 Gemini in BigQuery 的 SQL 補全功能,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「BigQuery Studio」頁面。

    前往 BigQuery Studio

  2. 在查詢編輯器中,複製以下內容:

    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 並未分組或匯總。這情況很常見,您需要協助來修正查詢。

  3. subscriber_type 的結尾按下空格鍵。

    建議的查詢修正內容可能會類似以下文字:

    GROUP BY
      subscriber_type, hour_of_day;
    

    您也可以按下 Enter 鍵 (macOS 裝置則按 Return 鍵) 來生成建議。

  4. 如要接受建議,請按下 Tab 鍵,或將遊標懸停在建議文字上,然後點閱其他建議。如要關閉建議,請按下 Esc 鍵或繼續輸入內容。

    SQL 建議的導覽按鈕。

說明 SQL 查詢

您可以提示 Gemini in BigQuery,用自然語言說明 SQL 查詢。此說明功能可協助您瞭解,語法、基礎結構定義和業務情境因查詢長度或複雜性而難以評估的查詢。

如要請 Gemini 說明 SQL 查詢,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「BigQuery Studio」頁面。

    前往 BigQuery Studio

  2. 在查詢編輯器中,開啟或貼上要讓 Gemini 說明的查詢。

  3. 反白選取要讓 Gemini in BigQuery 說明的查詢。

  4. 依序點按 astrophotography_mode「Gemini」與「Explain this query」(說明這項查詢)

    在 BigQuery 查詢編輯器中,醒目顯示的「說明這項查詢」圖示和文字。

    SQL 說明會顯示在「Cloud」面板中。

生成 Python 程式碼

您可以使用自然語言陳述式或問題,要求 Gemini in BigQuery 生成 Python 程式碼。Gemini in BigQuery 會回應一或多個 Python 程式碼建議,直接從 BigQuery 專案中擷取相關的資料表名稱,產生可執行的 Python 程式碼。

使用 Python 程式碼生成工具

在以下範例中,您會為 BigQuery 公開資料集 bigquery-public-data.ml_datasets.penguins 產生程式碼。

  1. 前往 Google Cloud 控制台的「BigQuery Studio」頁面。

    前往 BigQuery Studio

  2. 在查詢編輯器的分頁列中,按一下 「SQL query」 旁邊的 下拉式箭頭,然後點選「Notebook」

    新的筆記本會隨即開啟,其中包含顯示 bigquery-public-data.ml_datasets.penguins 公開資料集範例查詢的儲存格。

  3. 如要插入新的程式碼儲存格,請在工具列中依序點選 「Code」。新的程式碼儲存格包含「Start coding or generate with AI」訊息。

  4. 在新的程式碼儲存格中,按一下「生成」

  5. 在「Generate」編輯器中,輸入下列自然語言提示:

    Using bigquery magics, query the `bigquery-public-data.ml_datasets.penguins` table
    
  6. 按下 Enter 鍵 (如使用 macOS 裝置,則按 Return 鍵)。

    建議的 Python 程式碼如下所示:

    %%bigquery
    SELECT *
    FROM `bigquery-public-data.ml_datasets.penguins`
    LIMIT 10
    
  7. 如要執行程式碼,請按下 「Run cell」

透過 Gemini Cloud Assist 生成 Python 程式碼

您可以使用 Google Cloud 控制台中的 Gemini Cloud Assist,在 BigQuery 中產生 Python 程式碼。必須先啟用 Gemini Cloud Assist,才能使用 Gemini Cloud Assist 產生程式碼。詳情請參閱「設定 Gemini Cloud Assist」。

  1. 前往 Google Cloud 控制台的「BigQuery Studio」頁面。

    前往 BigQuery Studio

  2. 在查詢編輯器的分頁列中,按一下 「SQL query」 旁邊的 下拉式箭頭,然後點選「Notebook」

  3. 在 Google Cloud 工具列,點選 spark「Open or close Gemini AI chat」,開啟 Gemini Cloud Assist 對話。

    BigQuery 工具列中的 Gemini 按鈕。

  4. 在「Enter a prompt」(輸入提示) 欄位輸入提示,以便生成 Python 程式碼。例如:

    Generate python code to query the `bigquery-public-data.ml_datasets.penguins`
    table using bigquery magics
    
    
  5. 按一下「Send prompt」Gemini 會傳回類似以下的 Python 程式碼:

    %%bigquery
    SELECT *
    FROM `bigquery-public-data.ml_datasets.penguins`
    LIMIT 10
    
  6. 查看產生的 Python 程式碼。

  7. 如要執行 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 產生程式碼。

  1. 前往 Google Cloud 控制台的「BigQuery Studio」頁面。

    前往 BigQuery Studio

  2. 在查詢編輯器的分頁列中,按一下 「SQL query」 旁邊的 下拉式箭頭,然後點選「Notebook」

    系統會開啟新的筆記本。

  3. 如要插入新的程式碼儲存格,請在工具列中依序點選 「Code」

  4. 新的程式碼儲存格包含「Start coding or generate with AI」訊息。在新的程式碼儲存格中,按一下「生成」

  5. 在「Generate」編輯器中,輸入下列自然語言提示:

    Read the penguins table from the bigguery public data using bigframes
    
  6. 按下 Enter 鍵 (如使用 macOS 裝置,則按 Return 鍵)。

    建議的 Python 程式碼如下所示:

    import bigframes.pandas as bpd
    
    # Read the penguins table from the bigguery public data using bigframes
    result = bpd.read_gbd("bigquery-public-data.ml_datasets.penguins")
    
  7. 如要執行程式碼,請按下 「Run cell」

  8. 如要預覽結果,請在工具列中按一下 「程式碼」,插入新的程式碼儲存格。

  9. 在新儲存格中呼叫 peek() 方法,例如 result.peek(),然後按下 「Run cell」。畫面上會顯示多行資料。

完整 Python 程式碼

Python 程式碼補全功能會嘗試根據查詢編輯器中的內容,提供符合情境的適當建議。在您輸入內容時,BigQuery 中的 Gemini 會根據目前程式碼的情境,建議合理的後續步驟,或協助您疊代程式碼。

如要使用 Gemini in BigQuery 的 Python 程式碼補全功能,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「BigQuery Studio」頁面。

    前往 BigQuery Studio

  2. 在查詢編輯器的分頁列中,按一下 「SQL query」 旁邊的 下拉式箭頭,然後點選「Notebook」

    系統會開啟新的筆記本,其中包含顯示針對 bigquery-public-data.ml_datasets.penguins 公開資料集的查詢範例的儲存格。

  3. 在編輯器中開始輸入 Python 程式碼。例如 %%bigquery。Gemini in BigQuery 會在您輸入內容時,提供程式碼內嵌建議。

  4. 如要接受建議,請按下 Tab 鍵。

產生 PySpark 程式碼

您可以要求 Gemini Code Assist 在筆記本中產生 PySpark 程式碼。Gemini Code Assist 會擷取並使用相關的 BigQuery 和 Dataproc Metastore 資料表及其結構定義,產生程式碼回應。由於 Gemini Code Assist 具備結構定義知識,因此可避免產生幻覺,並建議彙整鍵和欄位類型。

如要在筆記本中產生 Gemini Code Assist 程式碼,請按照下列步驟操作:

  1. 按一下工具列中的「+ 程式碼」,即可插入新的程式碼儲存格。新的程式碼儲存格會顯示 Start coding or generate with AI。按一下「產生」

  2. 在「產生」編輯器中輸入自然語言提示,然後按一下 enter請務必在提示中加入關鍵字 sparkpyspark

    提示範例:

    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 同步處理

  • 請確認您的使用者帳戶有權存取資料目錄的查詢表。方法是指派 DataCatalog.Viewer 角色

關閉 Gemini 查詢輔助功能

如要關閉 Gemini in BigQuery 的特定功能,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「BigQuery Studio」頁面。

    前往 BigQuery Studio

  2. 在 BigQuery 工具列中,點選 pen_spark「Gemini」圖示

    BigQuery 工具列中的 Gemini 按鈕。

  3. 從清單中移除要關閉的查詢輔助功能。

如要瞭解如何關閉 Gemini in BigQuery,請參閱「關閉 Gemini in BigQuery」。

提供意見回饋

  1. 前往 Google Cloud 控制台的「BigQuery Studio」頁面。

    前往 BigQuery Studio

  2. 在 BigQuery 工具列中,點選 pen_spark「Gemini」圖示

    BigQuery 工具列中的 Gemini 按鈕。

  3. 按一下 [傳送意見]

協助我們改良建議功能

您可以將提交至預先發布版功能的提示資料分享給 Google,協助我們提升 Gemini 建議的品質。

如要分享提示資料,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「BigQuery Studio」頁面。

    前往 BigQuery Studio

  2. 在 BigQuery 工具列中,點選 pen_spark「Gemini」圖示

    BigQuery 工具列中的 Gemini 按鈕。

  3. 選取「Share data to improve Gemini in BigQuery」(共用資料,協助改良 Gemini in BigQuery)。

  4. 在「Data Use Settings」(資料使用設定) 對話方塊中,更新資料使用設定。

資料分享設定會套用至整個專案,且只有具備 serviceusage.services.enableserviceusage.services.list IAM 權限的專案管理員能夠設定。如要進一步瞭解「信任的測試人員」計畫的資料使用方式,請參閱「Gemini for Google Cloud 『信任的測試人員』計畫」。

Gemini 和 BigQuery 資料

為提供準確的結果,Gemini in BigQuery 需要存取您儲存在 BigQuery 的客戶資料和中繼資料,以便提供強化功能。詳情請參閱「Gemini in BigQuery 如何使用您的資料」。

定價

如要詳細瞭解這項功能的定價,請參閱 Gemini in BigQuery 定價總覽

配額與限制

如要瞭解這項功能的配額和限制,請參閱「BigQuery 中的 Gemini 配額」。

後續步驟