利用 Gemini 协助编写查询
本文档介绍了如何在 Gemini in BigQuery 中使用 AI 赋能的辅助功能,通过 SQL 查询和 Python 代码来查询数据。 Gemini in BigQuery 可以生成和解释查询和代码,也可以在您输入时补全查询和代码,还能修复代码错误。
如需在 Google Cloud 控制台中直接遵循有关此任务的分步指导,请点击操作演示:
未经您的明确许可,Gemini for Google Cloud 不会将您的提示或其回答作为数据来训练模型。如需详细了解 Google 如何使用您的数据,请参阅 Gemini for Google Cloud 如何使用您的数据。
BigQuery 中的 Gemini 仅支持英语提示。
本文档适用于处理 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 中的步骤操作。
如需使用 Gemini 在 BigQuery 的 Colab Enterprise 笔记本中解释和修复 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。
在功能列表中,确保选中以下功能:
SQL 查询中的 Gemini 列表:
- 自动补全(预览版)。在查询编辑器中输入内容时,Gemini 会根据您当前查询的上下文,建议合乎逻辑的后续步骤,或者帮助您迭代查询。
- 自动生成。您可以在 BigQuery 查询编辑器中使用自然语言注释提示 Gemini in BigQuery 生成 SQL 查询。
- SQL 生成工具。您可以在工具中输入自然语言文本以生成 SQL 查询,并提供用于优化查询结果、选择表来源和比较结果的选项。
- 说明。您可以提示 BigQuery 中的 Gemini 以自然语言解释 SQL 查询。
Python 笔记本中的 Gemini 列表:
- 代码补全(预览版)。Gemini 会根据笔记本中的内容提供适合上下文的建议。
- 代码生成。您可以使用自然语言语句或问题来提示 Gemini,以生成 Python 代码。
如需完成本文档中的任务,请确保您拥有必要的 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 语法的基础知识,Gemini in BigQuery 也可以生成 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 查询 在查询编辑器中,编写有关您最近查看或查询的表的 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 查询 在 Google Cloud 工具栏中,点击 spark 打开或关闭 Gemini AI 聊天,以打开 Gemini Cloud Assist 对话。
在输入提示字段中,输入提示以生成 SQL 查询。 例如:
Generate a SQL query to 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 生成技巧
您可以利用以下技巧改进 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 查询。对于内容较长或复杂的查询,其语法、底层架构和业务上下文可能难以评估,而提供解释有助于您理解这类查询。
如需获取 SQL 查询的解释,请按照以下步骤操作:
在 Google Cloud 控制台中,前往 BigQuery Studio 页面。
在查询编辑器中,打开或粘贴您想要获得解释的查询。
突出显示您想让 Gemini in BigQuery 解释的查询。
点击 astrophotography_mode Gemini,然后点击解释此查询。
SQL 解释即会显示在 Cloud 面板中。
生成 Python 代码
您可以使用自然语言语句或问题来让 Gemini in BigQuery 生成 Python 代码。Gemini in BigQuery 会返回一条或多条 Python 代码建议,直接从您的 BigQuery 项目中提取相关表名称,从而生成可执行的个性化 Python 代码。
使用 Python 代码生成工具
在以下示例中,您将为 BigQuery 公共数据集 bigquery-public-data.ml_datasets.penguins
生成代码。
在 Google Cloud 控制台中,前往 BigQuery Studio 页面。
在查询编辑器的标签页栏中,点击
SQL 查询旁边的 下拉箭头,然后点击笔记本。系统会打开新的笔记本,其中包含显示针对
bigquery-public-data.ml_datasets.penguins
公共数据集的查询示例的单元格。如需插入新的代码单元,请在工具栏中点击
代码。新的代码单元包含消息开始使用 AI 编码或生成。在新的代码单元中,点击生成。
在生成编辑器中,输入以下自然语言提示:
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
如需运行代码,请按
运行单元。
使用 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 查询旁边的 下拉箭头,然后点击笔记本。在 Google Cloud 工具栏中,点击 spark 打开或关闭 Gemini AI 聊天,以打开 Gemini Cloud Assist 对话。
在输入提示字段中,输入提示以生成 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 代码,请点击
复制到剪贴板,然后将生成的代码粘贴到查询编辑器中,再点击 运行。
生成 BigQuery DataFrames 代码
您可以使用 Gemini in BigQuery 生成 BigQuery DataFrames 代码。如需让 Gemini 在生成的代码中使用 BigQuery DataFrames,请在提示中表达您的意图。例如,您可以在提示中添加“使用 bigframes”或“利用 BigQuery DataFrames”等字样。
BigQuery DataFrames 提供两个库:
- bigframes.pandas:提供与 Pandas 兼容的 API 以用于分析。
- bigframes.ml:提供类似于 scikit-learn 的 API 以用于机器学习 (ML)。
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 查询旁边的 下拉箭头,然后点击笔记本。系统会打开一个新笔记本。
如需插入新的代码单元,请在工具栏中点击
代码。新的代码单元包含消息开始使用 AI 编码或生成。 在新的代码单元中,点击生成。
在生成编辑器中,输入以下自然语言提示:
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")
如需运行代码,请按
运行单元。如需预览结果,请在工具栏中点击
代码以插入新的代码单元。在新单元中,调用
peek()
方法(例如result.peek()
),然后按 运行单元。系统会显示多行数据。
完整的 Python 代码
Python 代码补全功能会尝试根据查询编辑器中的内容提供适合上下文的建议。在您输入内容时,BigQuery 中的 Gemini 会根据您当前代码的上下文,建议合乎逻辑的后续步骤,或者帮助您迭代代码。
如需尝试使用 Gemini in BigQuery 执行 Python 代码补全,请按照以下步骤操作:
在 Google Cloud 控制台中,前往 BigQuery Studio 页面。
在查询编辑器的标签页栏中,点击
SQL 查询旁边的 下拉箭头,然后点击笔记本。系统会打开新的笔记本,其中包含显示针对
bigquery-public-data.ml_datasets.penguins
公共数据集的查询示例的单元格。在编辑器中,开始键入 Python 代码。例如
%%bigquery
。Gemini in BigQuery 会在您输入时以内嵌方式建议代码。若要接受建议,请按 Tab 键。
说明 Python 代码
您可以使用 Gemini in BigQuery 解释 Colab Enterprise 笔记本中的 Python 代码。
获得说明后,您可以在提示对话框中提出更多问题,以便更好地了解代码。
如需获取笔记本中 Python 代码的说明,请按以下步骤操作:
在 Google Cloud 控制台中,前往 BigQuery Studio 页面。
在探索器窗格中,展开您的项目和笔记本文件夹。
点击要打开的笔记本。
突出显示您想了解的 Python 单元格。
依次点击 spark Gemini 和解释代码。
代码说明会显示在单元格旁边的面板中。
可选:如需更好地了解代码,请在在此处输入提示字段中提问。
修复并说明 Python 错误
您可以使用 Gemini in BigQuery 修复和解释 Colab Enterprise 笔记本中的 Python 代码错误。
如需在 Gemini 的帮助下修正或了解代码错误,请按以下步骤操作:
在 Google Cloud 控制台中,前往 BigQuery Studio 页面。
在探索器窗格中,展开您的项目和笔记本文件夹。
点击要打开的笔记本。
在笔记本的代码单元中,输入包含错误的代码,然后运行该单元。例如,您可能会输入
print(1
,但缺少右括号。代码单元运行后,笔记本会在代码单元下方输出一条错误消息。如果您已在 Python 笔记本中启用 Gemini,并且 Gemini 提供了修复或解释错误的建议,系统会显示以下选项之一:
- 对于 Python 语法错误,系统会显示修正错误选项。
- 对于所有其他类型的错误,系统会显示说明错误选项。
如需修正语法错误,请执行以下操作:
点击修正错误。
Gemini 会建议如何修正错误。
评估建议,然后执行以下某项操作:
- 如需接受建议,请依次点击勾号 接受建议。
- 如需拒绝建议,请依次点击关闭图标和拒绝建议。
如需修正所有其他类型的错误,请执行以下操作:
点击解释错误。
系统会打开一个面板,其中说明了错误并建议进行更改。
可选:如需更好地了解错误,请在在此处输入提示字段中提问。
如需接受建议的更改,请点击 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。
停用 Colab Enterprise 中的 Gemini
如需针对某个 Google Cloud 项目停用 Colab Enterprise 中的 Gemini,管理员必须停用 Gemini for Google Cloud API。请参阅停用服务。
如需为特定用户停用 Colab Enterprise 中的 Gemini,管理员需要撤消该用户的 Gemini for Google Cloud User (roles/cloudaicompanion.user
) 角色。请参阅撤消单个 IAM 角色。
提供反馈
在 Google Cloud 控制台中,前往 BigQuery Studio 页面。
在 BigQuery 工具栏中,点击
pen_spark Gemini 。点击发送反馈。
帮助改进建议功能
您可以与 Google 共享提交给预览版功能的提示数据,以帮助改进 Gemini 的建议功能。
若要共享提示数据,请按照以下步骤操作:
在 Google Cloud 控制台中,前往 BigQuery Studio 页面。
在 BigQuery 工具栏中,点击
pen_spark Gemini 。选择共享数据以改进 Gemini in BigQuery。
在数据使用设置对话框中,更新数据使用设置。
数据共享设置适用于整个项目,且只能由拥有 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 的配额。