在 Gemini 协助下编写查询

本文档介绍如何在 Gemini in BigQuery 中使用依托 AI 技术的助理,帮助您使用 SQL 查询和 Python 代码查询数据。BigQuery 中的 Gemini 可以生成查询和代码、在您输入时补全查询和代码,以及解释查询。


如需在 Google Cloud 控制台中直接遵循有关此任务的分步指导,请点击操作演示

操作演示


未经您的明确许可,Gemini for Google Cloud 不会将您的提示或其回答作为数据来训练模型。如需详细了解 Google 如何使用您的数据,请参阅 适用于 Google Cloud 的 Gemini 如何使用您的数据

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

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

准备工作

  1. 确保已为您的 Google Cloud 项目设置了 Gemini in BigQuery。此步骤通常由管理员完成。在您完成本部分中的其余步骤之前,Gemini in BigQuery 功能可能会处于停用状态或不可用。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

    进入 BigQuery Studio

  4. 在 BigQuery 工具栏中,依次点击 pen_sparkGemini

    BigQuery 工具栏中的 Gemini 按钮。

  5. 在功能列表中,确保已选择以下功能:

    • SQL 查询中的 Gemini 列表:

      • 自动补全(预览版)。在查询编辑器中输入内容时,Gemini 可以建议与当前查询上下文相关且合乎逻辑的后续步骤,也可以帮助您迭代查询。
      • 自动生成。您可以在 BigQuery 查询编辑器中使用自然语言注释提示 BigQuery 中的 Gemini 生成 SQL 查询。
      • SQL 生成工具。您可以在工具中输入自然语言文本以生成 SQL 查询,并使用相关选项来优化查询结果、选择表来源和比较结果。
      • 说明。您可以提示 BigQuery 中的 Gemini 使用自然语言解释 SQL 查询。
    • Python 笔记本中的 Gemini 列表:

      • 代码补全(预览版)。Gemini 会根据记事中的相关内容提供适合上下文的建议。
      • 代码生成。您可以使用自然语言语句或问题来提示 Gemini,以生成 Python 代码。
  6. 如需完成本文档中的任务,请确保您拥有必要的 Identity and Access Management (IAM) 权限

所需的角色

如需获得在 Gemini 的协助下编写查询所需的权限,请让管理员向您授予项目的 Gemini for Google Cloud User (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 生成工具,请按以下步骤操作:

  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 查询,请在优化字段中输入任何优化条件,然后点击 优化。例如,输入 limit to 1000 可限制查询结果的数量。如需比较对查询所做的更改,请选中显示差异复选框。
    • 如需关闭建议的查询,请关闭 SQL 生成工具。

关闭 SQL 生成工具

如需了解如何停用 SQL 生成工具,请参阅停用 Gemini 查询助理功能

根据注释生成 SQL

您可以在查询编辑器中通过在注释中描述所需的查询来生成 SQL。

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

    进入 BigQuery Studio

  2. 在查询编辑器中,点击 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 键。

SQL 生成技巧

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

  • 如需手动指定要使用的表,您可以使用反引号 (`) 包含完全限定的表名称,例如 `PROJECT.DATASET.TABLE`
  • 如果列名称或其语义关系不明确或比较复杂,您可以在提示中提供上下文,以引导 Gemini 获得您所需的答案。例如,要促使生成的查询引用列名称,请描述列名称及其与所需答案的相关性。为促使回答引用复杂术语(如生命周期价值毛利),请描述该概念及其与用于改进 SQL 生成结果的数据的相关性。
  • 从注释生成 SQL 时,您可以通过在每行前面添加 # 字符,将提示格式设置为多行。
  • 在生成 SQL 查询时,系统会考虑列说明。为了提高准确性,请向架构中添加列说明。如需详细了解列说明,请参阅“指定架构”中的列说明

Gemini 和 BigQuery 数据

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

完成 SQL 查询

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

如需在 BigQuery 中尝试使用 Gemini 执行 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 对应行的末尾,按 Space 键。

    系统建议对可能以类似如下文本结尾的查询进行优化:

    GROUP BY
      subscriber_type, hour_of_day;
    

    您也可以按 Enter 键(在 macOS 上,按 Return 键)来生成建议。

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

    SQL 建议的导航按钮。

解释 SQL 查询

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

如需获取 SQL 查询的说明,请按以下步骤操作:

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

    进入 BigQuery Studio

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

  3. 突出显示您希望 BigQuery 中的 Gemini 解释的查询。

  4. 依次点击 astrophotography_mode Gemini,然后点击 Explain this query(解释此查询)。

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

    SQL 说明会显示在 Gemini 窗格中。

生成 Python 代码

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

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

  1. 转到 BigQuery Studio 页面。

    进入 BigQuery Studio

  2. 在查询编辑器的标签页栏中,点击 SQL 查询旁边的 下拉箭头,然后点击 Python 笔记本

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

  3. 如需插入新的代码单元,请在工具栏中点击 Code(代码)。新的代码单元包含消息开始使用 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(运行单元)。

完整的 Python 代码

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

如需在 BigQuery 中尝试使用 Gemini 补全 Python 代码,请按以下步骤操作:

  1. 转到 BigQuery Studio 页面。

    进入 BigQuery Studio

  2. 在查询编辑器的标签页栏中,点击 SQL 查询旁边的 下拉箭头,然后点击 Python 笔记本

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

  3. 在编辑器中,开始输入 Python 代码。例如 %%bigquery。Gemini in BigQuery 会在您输入时以内嵌方式建议代码。

  4. 若要接受建议,请按 Tab 键。

关闭 Gemini 查询助理功能

如需在 Gemini in BigQuery 中停用特定功能,请执行以下操作:

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

    进入 BigQuery Studio

  2. 在 BigQuery 工具栏中,依次点击 pen_sparkGemini

    BigQuery 工具栏中的 Gemini 按钮。

  3. 在列表中,清除您要关闭的询问助理功能。

如需了解如何在 BigQuery 中停用 Gemini,请参阅在 BigQuery 中停用 Gemini

提供反馈

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

    进入 BigQuery Studio

  2. 在 BigQuery 工具栏中,依次点击 pen_sparkGemini

    BigQuery 工具栏中的 Gemini 按钮。

  3. 点击发送反馈

帮助改进建议

您可以与 Google 共享您提交给预览版中功能的提示数据,帮助改进 Gemini 建议。

如需共享提示数据,请按照以下步骤操作:

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

    进入 BigQuery Studio

  2. 在 BigQuery 工具栏中,依次点击 pen_sparkGemini

    BigQuery 工具栏中的 Gemini 按钮。

  3. 选择共享数据以改进 BigQuery 中的 Gemini

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

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

价格

如需详细了解此功能的价格,请参阅 Gemini in BigQuery 价格概览

配额和限制

如需了解此功能的配额和限制,请参阅 Gemini in BigQuery 的配额

后续步骤