在 Gemini 协助下编写查询

您可以使用适用于 Google Cloud 的 Gemini,该服务提供依托 AI 技术的辅助功能,帮助您在 BigQuery 中执行以下操作:

  • 生成 SQL 查询。
  • 完成 SQL 查询。
  • 解释 SQL 查询。
  • 生成 Python 代码。
  • 补全 Python 代码。

了解 Gemini for Google Cloud 如何使用您的数据以及何时使用您的数据

BigQuery 中的 Gemini 仅支持英语提示。

本文档适用于处理 SQL 查询和 BigQuery 中的 Colab Enterprise 笔记本的数据分析师、数据科学家和数据开发者。本文假定您了解如何在 BigQuery SQL 工作区中查询数据,或了解如何使用笔记本通过 Python 分析 BigQuery 数据。

准备工作

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

    Go to project selector

  2. 确保已为您的 Google Cloud 项目设置了 Gemini。在设置完成之前,无法看到 Gemini 按钮。
  3. 如需将 Gemini 与 Python 代码结合使用,请启用 BigQuery Studio 进行资产管理

所需的角色

如需获得在 Gemini 的协助下编写查询所需的权限,请让管理员向您授予项目的 Cloud AI Companion User (roles/cloudaicompanion.user) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限

此预定义角色包含在 Gemini 的协助下编写查询所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需在 Gemini 的协助下编写查询,您需要具备以下权限:

  • cloudaicompanion.companions.generateCode
  • cloudaicompanion.entitlements.get

您也可以使用自定义角色或其他预定义角色来获取这些权限。

生成 SQL 查询

如需根据数据架构生成 SQL 查询,您可以向 Gemini 提供自然语言语句或问题(也称为“提示”)。即使您最初不使用代码,对数据架构的了解有限,或者仅具备 GoogleSQL 语法的基础知识,Gemini 也可以生成一个或多个 SQL 语句,以帮助您探索数据。

使用帮我写代码工具

借助帮我写代码工具,您可以使用自然语言生成 SQL 查询,然后在 BigQuery Studio 中运行该查询。

如需使用帮我写代码工具,请按照以下步骤操作:

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  2. 在 BigQuery Studio 查询编辑器中,点击 创建 SQL 查询

  3. 在工具栏中,点击 pen_sparkGemini,然后选择代码生成工具(如果尚未选择)。

    BigQuery 工具栏中的 Gemini 按钮。

  4. 在查询编辑器旁边,点击 pen_spark 帮我写代码

    BigQuery 查询编辑器中的“帮我写代码”按钮。

  5. 帮我写代码工具中,输入提示。例如:

     Using `bigquery-public-data.austin_bikeshare.bikeshare_trips`, show me the
     ten longest trip lengths by subscriber type.
    
  6. 点击生成

    Gemini 会生成如下所示的 SQL 查询:

    SELECT subscriber_type,
      MAX(duration_minutes) AS longest_trip_duration
    FROM `bigquery-public-data.austin_bikeshare.bikeshare_trips`
    GROUP BY subscriber_type
    ORDER BY longest_trip_duration DESC
    LIMIT 10;
    
  7. 查看生成的 SQL 查询并执行以下任一操作:

    • 如需接受生成的 SQL 查询,请点击插入以将语句插入查询编辑器中。然后,点击运行以执行建议的 SQL 查询。
    • 如需让 Gemini 生成新查询,请点击修改。修改提示完成后,点击更新。然后,您可以决定接受新生成的语句或忽略建议。
    • 如需忽略建议,请关闭帮我写代码对话框。
  8. 如需让 Gemini 使用特定表来源生成新查询,请点击修改表来源,选择新的表来源,然后点击应用。您可以接受新声明或忽略建议。

停用帮我写代码工具

如需了解如何停用帮我编写代码工具,请参阅停用 Gemini 功能

用于生成 SQL 查询的提示

如需生成 SQL,请在 BigQuery 查询编辑器中输入 # 字符,后跟自然语言语句或有关您所需信息的问题。Gemini 会查看您的近期查询,以找到可能与您的提示相关的表架构。如果您知道要使用的表,则可以在提示中用英文反引号 (`) 指定表名称。

在以下示例中,您将针对 BigQuery 公共表 bigquery-public-data.austin_bikeshare.bikeshare_trips 生成查询。

  1. 在 Google Cloud 控制台中,转到 BigQuery Studio 页面。

    进入 BigQuery Studio

    其余步骤会显示在 Google Cloud 控制台中。

  2. 在 SQL 查询编辑器中,点击 创建新查询

  3. 在工具栏中,点击 pen_spark Gemini,然后选择自动生成(如果尚未选择)。

    BigQuery 工具栏中的 Gemini 按钮。

  4. 在查询编辑器中,输入以下自然语言提示:

    # Using `bigquery-public-data.austin_bikeshare.bikeshare_trips`, calculate the
    # average trip length by subscriber type.
    
  5. Enter 键(在 macOS 上,按 Return 键)。

    Gemini 会建议如下所示的 SQL 查询:

    SELECT
      subscriber_type,
      AVG(duration_minutes) AS average_trip_length
    FROM
      `bigquery-public-data.austin_bikeshare.bikeshare_trips`
    GROUP BY
      subscriber_type
    
  6. 若要接受建议,请按 Tab 键。

查看更多建议

Gemini 可能会建议多个 SQL 语句来回答您的提示。例如:

  1. 在查询编辑器中,输入以下自然语言提示符,然后按 Enter 键(在 macOS 上,按 Return 键):

    # Write a query that creates a table in the dataset `1234` with a string column called "name"
    

    Gemini 会建议 SQL 查询。

  2. 如需查看是否有其他建议,请将指针悬停在建议的 SQL 查询上。

  3. 点击任何其他建议,然后执行以下某项操作:

    • 要接受建议,请按 Tab
    • 要接受特定字词,请按 Ctrl+向右键(在 macOS 上,按 Command+向右键)。
    • 要忽略建议,请按 Esc

SQL 生成技巧

以下技巧可以改进 BigQuery 中的 Gemini 提供的建议:

  • 如需指定数据架构,请提供用反引号 (`) 括起来的完全限定表名称,例如 `PROJECT.DATASET.TABLE`
  • 如果列名称或其语义关系不明确或比较复杂,您可以在提示中提供上下文,以引导 Gemini 获得您所需的答案。这种方法称为“提示工程”。例如,要促使生成的查询引用列名称,请描述列名称及其与所需答案的相关性。为促使回答引用复杂术语(如生命周期价值毛利),请描述该概念及其与用于改进 SQL 生成结果的数据的相关性。
  • 在查询编辑器中,提示可以扩展到多行,但每行都必须以 # 字符开头。

Gemini 和 BigQuery 数据

BigQuery 中的 Gemini 可以访问您有权访问的表的元数据。这可能包括表名称、列名、数据类型和列说明。BigQuery 中的 Gemini 无法访问表、视图或模型中的数据。如需详细了解 Gemini 如何使用您的数据,请参阅适用于 Google Cloud 的 Gemini 如何使用您的数据

停用 SQL 代码生成功能

如需了解如何在 BigQuery 中停用 SQL 代码生成功能,请参阅停用 Gemini 功能

完成 SQL 查询

SQL 补全功能会尝试根据查询编辑器中的内容提供适合情境的建议。在输入时,Gemini 可以建议与当前查询上下文相关且合乎逻辑的后续步骤,也可以帮助您迭代查询。

如需尝试使用 Gemini 执行 SQL 补全,请按照以下步骤操作:

  1. 在 Google Cloud 控制台中,转到 BigQuery Studio 页面。

    进入 BigQuery Studio

    其余步骤会显示在 Google Cloud 控制台中。

  2. 在工具栏中,点击 pen_spark Gemini,然后选择自动补全(如果尚未选择)。

    BigQuery 工具栏中的 Gemini 按钮。

  3. 在查询编辑器中,复制以下内容:

    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 既未分组,也未汇总。为获得正确的查询,我们常常需要一些帮助。

  4. Enter(在 macOS 上按 Return)或空格键

    Gemini 建议对可能以如下所示的文本结尾的查询进行优化:

    GROUP BY
      subscriber_type, hour_of_day;
    
  5. 如需接受建议,请按 Tab 键,或者将指针悬停在建议的文本上并点击备选建议。要忽略建议,请按 ESC 或继续输入。

解释 SQL 查询

您可以提示 BigQuery 中的 Gemini 以自然语言解释 SQL 查询。由于查询的长度或复杂性,其语法、底层架构和业务上下文可能难以评估,此说明可以帮助您了解此类查询。

其他必需的权限

除了使用 Gemini 编写查询所需的权限之外,您还必须具有 cloudaicompanion.companions.generateChat 权限来解释 SQL。Cloud AI Companion User (roles/cloudaicompanion.user) IAM 角色拥有这项权限。

解释 SQL 查询

如需解释 SQL 查询,请按照以下步骤操作:

  1. 在 Google Cloud 控制台中,转到 BigQuery Studio 页面。

    进入 BigQuery Studio

    其余步骤会显示在 Google Cloud 控制台中。

  2. 在工具栏中,点击 pen_spark Gemini,然后选择解释(如果尚未选择)。

    BigQuery 工具栏中的 Gemini 按钮。

  3. 在查询编辑器中,打开或粘贴您要解释的查询。

  4. 突出显示您希望 Gemini 解释的查询,然后点击 astrophotography_mode 解释此次查询

    “解释此次查询”图标和 BigQuery 查询编辑器左列中突出显示的文本。

SQL 解释会显示在 Gemini 窗格中。

生成 Python 代码

您可以使用自然语言语句或问题来提示 Gemini,以生成 Python 代码。Gemini 会返回一条或多条 Python 代码建议作为响应。

其他必需的权限

除了使用 Gemini 编写查询所需的权限之外,您还必须具有 cloudaicompanion.instances.generateCode 权限才能生成 Python 代码。Cloud AI Companion User (roles/cloudaicompanion.user) IAM 角色拥有这项权限。

使用 Gemini 生成 Python 代码

在以下示例中,您将为 BigQuery 公共数据集 bigquery-public-data.ml_datasets.penguins 生成代码。

  1. 转到 BigQuery Studio 页面。

    转到 BigQuery

  2. 在工具栏中,点击 pen_sparkGemini,然后在 Gemini in Python notebooks 部分中选择代码生成(如果尚未选择)。

    BigQuery 工具栏中的 Gemini 按钮。

  3. 在编辑器窗格的标签页栏中,点击 + 号旁边的 下拉箭头,然后点击创建 Python 笔记本

    notebook-tab

    系统会打开新的笔记本,其中包含显示针对 bigquery-public-data.ml_datasets.penguins 公共数据集的查询示例的单元格。

  4. 在工具栏中,点击 + 代码以插入新的代码单元。随即会出现一个新的代码单元,上面显示开始使用 AI 编码或生成

  5. 在新的代码单元中,点击生成

  6. 在代码编辑器中,输入以下自然语言提示:

    Using bigquery magics query the `bigquery-public-data.ml_datasets.penguins` table
    
  7. Enter 键(在 macOS 上,按 Return 键)。

    Gemini 会建议如下所示的 Python 代码:

    %%bigquery
    SELECT *
    FROM `bigquery-public-data.ml_datasets.penguins`
    LIMIT 10
    

Python 代码补全

Python 代码补全功能会尝试根据查询编辑器中的内容提供适合上下文的建议。在输入时,Gemini 可以建议与当前代码上下文相关且合乎逻辑的后续步骤,也可以帮助您迭代代码。

其他必需的权限

除了使用 Gemini 编写查询所需的权限之外,您还必须具有 cloudaicompanion.instances.completeCode 权限才能生成 Python 代码。Cloud AI Companion User (roles/cloudaicompanion.user) IAM 角色拥有这项权限。

使用 Gemini 补全 Python 代码

如需尝试使用 Gemini 执行 Python 代码补全,请按照以下步骤操作:

  1. 转到 BigQuery Studio 页面。

    转到 BigQuery

  2. 在工具栏中,点击 pen_spark Gemini,然后在 Gemini in Python notebook 部分中,选择代码补全(如果尚未选择)。

    BigQuery 工具栏中的 Gemini 按钮。

  3. 在编辑器窗格的标签页栏中,点击 + 号旁边的 下拉箭头,然后点击创建 Python 笔记本

    notebook-tab

    系统会打开新的笔记本,其中包含显示针对 bigquery-public-data.ml_datasets.penguins 公共数据集的查询示例的单元格。

  4. 在代码编辑器中,开始键入 Python 代码。Gemini 会在您输入时以内嵌方式建议代码。若要接受建议,请按 Tab 键。

停用 Gemini 功能

如需停用 BigQuery 中的 Gemini 功能,请执行以下操作:

  1. 在 SQL 查询编辑器的工具栏中,点击 pen_spark Gemini

  2. 清除您要停用的 Gemini 功能。

提供反馈

您可以提供有关 Gemini 建议的反馈。

  • 如需提供反馈,请在工具栏中点击 pen_spark Gemini,然后选择发送反馈

帮助改进建议

您可以与 Google 共享提示数据,帮助改进 Gemini 建议。如需共享提示数据,请按照以下步骤操作:

  1. 在 Google Cloud 控制台的 BigQuery Studio 页面上的工具栏中,点击 pen_spark Gemini

  2. 选择共享数据以改进 Gemini

  3. 在数据使用设置对话框中更新流量使用设置。

数据共享设置适用于整个项目,且只能由拥有 serviceusage.services.enableserviceusage.services.list IAM 权限的项目管理员设定。如需详细了解可信测试员计划中的数据使用方式,请参阅适用于 Google Cloud 的 Gemini 可信测试员计划

后续步骤