在 BigQuery 中生成数据分析
数据分析洞见提供了一种自动方法来探索、理解和管护您的数据。 借助数据分析洞见,Gemini in BigQuery 会根据表元数据生成自然语言问题以及用于回答这些问题的 SQL 查询。这些分析洞见可帮助您发现模式、评估数据质量和执行统计分析。
您还可以使用数据分析洞见根据表元数据生成表和列说明,并将其发布到 Dataplex Universal Catalog。此功能可帮助您记录数据以进行有意义的分析,并提高数据集可发现性。
本页面介绍了数据分析的主要功能以及自动生成查询以进行深度数据探索的过程。
准备工作
数据洞察是使用 Gemini in BigQuery 生成的。如需开始生成数据洞察,您必须先设置 Gemini in BigQuery。
所需的角色
如需创建、管理和检索数据分析,请让您的管理员向您授予以下 IAM 角色:
针对您要生成数据分析的项目的 Dataplex DataScan Editor (
roles/dataplex.dataScanEditor) 或 Dataplex DataScan Administrator (roles/dataplex.dataScanAdmin) 角色。针对您要为其生成数据分析的 BigQuery 表的 BigQuery Data Viewer (
roles/bigquery.dataViewer) 角色。针对您要为其生成数据洞察的 BigQuery 表的 BigQuery Data Viewer (
roles/bigquery.dataEditor) 角色。针对您要在其中生成数据洞察的项目的 BigQuery User (
roles/bigquery.user) 或 BigQuery Studio User (roles/bigquery.studioUser) 角色。
如需获得对生成的数据分析的只读访问权限,请让您的管理员向您授予以下 IAM 角色:
- 针对您要查看其数据分析的 BigQuery 表所在项目的 Dataplex DataScan DataViewer (
roles/dataplex.dataScanDataViewer) 角色。
如需将数据分析洞见发布到 Dataplex Universal Catalog,请让您的管理员向您授予资源的以下 IAM 角色:
将说明发布为切面:Dataplex Catalog Editor (
roles/dataplex.catalogEditor)将查询发布为切面:Dataplex Entry and EntryLink Owner (
roles/dataplex.entryOwner)
如需启用 API,请让您的管理员为您授予以下 IAM 角色:
- 您要生成分析洞见的项目的 Service Usage Admin (
roles/serviceusage.serviceUsageAdmin)。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您也可以通过自定义角色或其他预定义角色来获取所需的权限。如需查看生成数据洞察所需的确切权限,请展开所需权限部分:
所需权限
bigquery.jobs.createbigquery.tables.getbigquery.tables.getDatadataplex.datascans.createdataplex.datascans.getdataplex.datascans.getDatadataplex.datascans.run
启用 API
如需使用数据分析洞见,请在项目中启用以下 API:Dataplex API、BigQuery API 和 Gemini for Google Cloud API。
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin), which
contains the serviceusage.services.enable permission. Learn how to grant
roles.
如需详细了解如何启用 Gemini for Google Cloud API,请参阅在 Google Cloud 项目中启用 Gemini for Google Cloud API。
数据分析简介
在探索不熟悉的新表时,数据分析师通常会面临冷启动问题。该问题通常涉及到数据结构、关键模式和相关数据洞察的不确定性,因此难以开始编写查询。
数据洞察可根据表的元数据自动生成自然语言查询及其 SQL 等效查询,以此来解决冷启动问题。您可以使用提供宝贵数据洞察的有意义查询更快地开始数据探索,而不是从空的查询编辑器开始。如需进一步调查,您可以在数据画布中提出后续问题。
数据分析运行示例
假设有一个名为 telco_churn 且具有以下元数据的表:
| 字段名称 | 类型 |
|---|---|
| CustomerID | STRING |
| 性别 | STRING |
| Tenure | INT64 |
| InternetService | STRING |
| StreamingTV | STRING |
| OnlineBackup | STRING |
| 合同 | STRING |
| TechSupport | STRING |
| PaymentMethod | STRING |
| MonthlyCharges | FLOAT |
| Churn | BOOLEAN |
以下是数据分析为此表生成的一些示例查询:
识别已订阅所有高级服务且成为客户超过 50 个月的客户。
SELECT CustomerID, Contract, Tenure FROM agentville_datasets.telco_churn WHERE OnlineBackup = 'Yes' AND TechSupport = 'Yes' AND StreamingTV = 'Yes' AND Tenure > 50;确定哪个互联网服务的流失客户最多。
SELECT InternetService, COUNT(DISTINCT CustomerID) AS total_customers FROM agentville_datasets.telco_churn WHERE Churn = TRUE GROUP BY InternetService ORDER BY total_customers DESC LIMIT 1;按细分确定高价值客户的流失率。
SELECT Contract, InternetService, Gender, PaymentMethod, COUNT(DISTINCT CustomerID) AS total_customers, SUM(CASE WHEN Churn = TRUE THEN 1 ELSE 0 END) AS churned_customers, (SUM(CASE WHEN Churn = TRUE THEN 1 ELSE 0 END) / COUNT(DISTINCT CustomerID)) * 100 AS churn_rate FROM agentville_datasets.telco_churn WHERE MonthlyCharges > 100 GROUP BY Contract, InternetService, Gender, PaymentMethod;
生成分析洞见的模式
BigQuery 在生成分析洞见时提供两种模式:
| 模式 | 说明 | 用法 |
|---|---|---|
| 生成并发布(预览版) | 将生成的分析洞见作为元数据切面持久保存到 Dataplex Universal Catalog 中。您必须拥有发布所需的权限。 使用生成并发布时,系统会执行以下操作:
|
如果需要持久保存和重复使用企业范围的数据文档,或者需要构建目录驱动的治理工作流,请使用此模式。 |
| 生成但不发布 | 按需创建分析洞见(说明、自然语言问题和 SQL 查询)。分析洞见无法发布到 Dataplex Universal Catalog。 | 使用此模式可进行快速临时探索,避免目录杂乱无章。 |
改进生成的数据洞察的最佳实践
如需提高生成的数据洞察的准确率,请遵循以下最佳实践:
使用数据分析结果为数据洞察建立依据
在生成式 AI 中,建立依据是指将模型输出连接到可验证的信息源的能力。您可以使用数据分析结果为生成的数据洞察建立依据。数据分析可分析 BigQuery 表中的列,并识别常见的统计特征,例如典型数据值和数据分布。为表创建数据分析扫描时,您可以选择将扫描结果发布到 Google Cloud 控制台中的 BigQuery 和 Dataplex Universal Catalog 页面。BigQuery 会执行以下操作,以便使用数据分析结果创建更准确、更相关的查询:
- 分析数据分析结果,以识别数据中的有趣模式、趋势或离群值。
- 生成重点关注这些模式、趋势或离群值的查询以发掘数据洞察
- 针对数据分析结果验证生成的查询,以确保查询返回有意义的结果。
如果不使用数据分析扫描,则会发生以下情况:
- 生成的查询更有可能包含不准确的子句或生成无意义的结果。
- 生成的列说明仅基于列名称。
确保针对表的数据分析扫描是最新的,并且结果已发布到 BigQuery。
您可以调整数据分析设置,以增大采样规模并过滤出行和列。运行新的数据分析扫描后,请重新生成数据洞察。
添加表说明
详细的表说明可用于描述您想在表中分析的内容,从而帮助 Gemini in BigQuery 生成更相关的数据洞察。添加表说明后,请重新生成数据洞察。
例如,您可以向 telco_churn 表添加以下说明:“此表用于跟踪客户流失数据,包括订阅详情、使用期限和服务用量,以预测客户流失行为。”
如果您保存 Gemini 生成的表说明,则该说明将用于生成未来的分析洞见。
添加列说明
列说明可用于说明各列的内容,或一个列与另一个列之间的关系,从而提高数据洞察的质量。在表中更新列说明后,请重新生成数据洞察。
例如,您可以向 telco_churn 表的特定列添加以下说明:
Tenure:“客户使用服务的月数”。Churn:“客户是否已停止使用服务。TRUE 表示客户不再使用服务,FALSE 表示客户处于活跃状态。”
如果您保存 Gemini 生成的列说明,那么这些说明将用于生成未来的分析洞见。
为 BigQuery 表生成数据分析
控制台
如需为 BigQuery 表生成数据洞察,您必须使用 BigQuery Studio 在 BigQuery 中访问表条目。
在 Google Cloud 控制台中,前往 BigQuery Studio。
在左侧窗格中,点击 探索器:

如果您没有看到左侧窗格,请点击 展开左侧窗格以打开该窗格。
在探索器窗格中,点击数据集,然后选择您的数据集。
点击概览 > 表,然后选择要为其生成数据分析的表。
点击数据分析标签页。如果该标签页为空,则表示此表的数据分析尚未生成。
如需生成分析洞见并将其发布到 Dataplex Universal Catalog,请点击生成并发布(预览版)。
如需生成分析洞见,但不将其发布到 Dataplex Universal Catalog,请点击生成但不发布。
如需详细了解生成并发布模式与生成但不发布模式之间的区别,请参阅生成分析洞见的模式。
选择一个区域以生成分析洞见,然后点击生成。
数据洞察需要几分钟才能填充完毕。
如果可使用表的已发布数据分析结果,则系统会使用这些内容生成数据洞察。否则,系统会根据列名称和说明生成数据洞察。
在数据分析标签页中,浏览生成的自然语言问题。
如需查看用于回答问题的 SQL 查询,请点击相应问题。
如需在 BigQuery 中打开查询,请点击复制到查询。
如需提问后续问题,请执行以下操作:
点击接着提问。查询会在新的数据画布中打开。
点击运行,���后点击查询这些结果。
如需提出后续问题,请在自然语言提示字段中输入提示,或在查询编辑器中修改 SQL。
如需生成一组新查询,请点击生成数据分析并再������发流水线。
为表生成数据洞察后,拥有 dataplex.datascans.getData 权限且可以访问表的任何人都可以查看这些数据洞察。
REST
如需为 BigQuery 表生成分析洞察,请使用 Dataplex Universal Catalog DataScans API 支持的 DATA_DOCUMENTATION 扫描类型。这些扫描会生成元数据,包括用于数据探索的富有洞察力的 SQL 查询、架构说明和表级摘要。
如需为 BigQuery 表生成数据分析洞见,请按以下步骤操作:
可选:为表创建数据分析扫描。这些扫描结果的存在可减少 Gemini 的认知错误和近似值,因为它们可将输出结果与数据中的实际值相关联。
使用
dataScans.create方法创建数据分析扫描。使用
dataScans.run方法运行数据分析扫描。 等待运行完成。通过将以下数据分析标签附加到 BigQuery 表,将扫描结果发布到该表:
- dataplex-dp-published-scan:DATASCAN_ID
- dataplex-dp-published-project:PROJECT_ID
- dataplex-dp-published-location:LOCATION
如需了解详情,请参阅向表和视图添加��签。
为 BigQuery 表生成数据文档数据扫描:
使用
dataScans.create方法创建数据文档数据扫描。例如:
gcurl -X POST https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataScans?dataScanId=DATASCAN_ID -d '{ "data": { "resource": "//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID" }, "executionSpec": { "trigger":{ "onDemand":{} } }, "type":"DATA_DOCUMENTATION", "dataDocumentationSpec":{}}'替换以下内容:
- PROJECT_ID:数据集所在的 Google Cloud项目的 ID
- LOCATION:数据扫描运行的区域
- DATASCAN_ID:您为此扫描提供的唯一名称
- DATASET_ID:正在扫描的 BigQuery 数据集的 ID
- TABLE_ID:正在扫描的 BigQuery 表的 ID
使用
dataScans.run方法启动数据文档扫描作业。例如:
gcurl -X POST https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataScans/DATASCAN_ID:run此请求会返回唯一的作业 ID 以及初始状态。
使用
dataScans.get方法检查扫描作业运行是否完成。使用作业 ID 获取作业的状态。例如:
gcurl -X GET https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataScans/DATASCAN_ID/jobs/JOB_ID当状态为
SUCCEEDED或FAILURE时,表示作业已完成。通过将以下数据文档标签附加到 BigQuery 表,将扫描结果发布到该表:
- dataplex-data-documentation-published-scan:DATASCAN_ID
- dataplex-data-documentation-published-project:PROJECT_ID
- dataplex-data-documentation-published-location:LOCATION
为 BigQuery 外部表生成数据分析
BigQuery 数据洞察支持为包含 Cloud Storage 中数据的 BigQuery 外部表生成数据洞察。您和当前项目的 Dataplex Universal Catalog 服务账号必须拥有针对包含数据的 Cloud Storage 存储桶的 Storage Object Viewer 角色 (roles/storage.objectViewer)。如需了解详情,请参阅将主账号添加到存储桶级层政策中。
如需为 BigQuery 外部表生成数据分析,请按照本文档的为 BigQuery 表生成数据分析部分中的说明操作。
为 BigLake 表生成数据分析
如需为 BigLake 表生成数据分析,请按以下步骤操作:
在项目中启用 BigQuery Connection API。
创建 BigQuery 连接。如需了解详情,请参阅管理连接。
将 Storage Object Viewer (
roles/storage.objectViewer) IAM 角色授予与您创建的 BigQuery 连接对应的服务账号。您可以从连接详细信息中检索服务账号 ID。
如需生成数据分析,请按照本文档的为 BigQuery 表生成数据分析部分中的说明操作。
生成表和列说明
当您生成数据分析洞见时,Gemini in BigQuery 会自动生成表和列说明。您可以根据需要修改这些说明,然后将其保存到表的元数据中。保存的说明用于生成未来的分析洞见。
控制生成语言
您可以引导 Gemini 以特定语言生成表和列说明。为此,请在生成数据分析洞见之前,向表的现有说明添加简短的指令(例如“使用法语生成表格和列说明”)。
生成分析洞见时,Gemini 会解读此指令,并以所请求的语言生成元数据。此机制之所以有效,是因为 Gemini 在生成新的表说明时会使用现有的表说明作为上下文。
如需查看受支持的语言列表,请参阅 Gemini 语言支持。
生成描述
如需生成表和列说明,请按照以下步骤操作:
按照本文档相关部分中的说明生成分析洞见:
点击架构标签页。
点击查看列说明。
系统会显示生成的表说明和列说明。
如需修改并保存生成的表说明,请执行以下操作:
在表说明部分中,点击保存到详细信息。
如需将当前说明替换为生成的说明,请点击复制建议的说明。
根据需要修改表说明,然后点击保存到详细信息。
系统会立即更新表说明。
如需修改并保存生成的列说明,请执行以下操作:
在列说明部分中,点击保存到架构。
系统会在每个列的新说明字段中填充生成的列说明。
根据需要修改列说明,然后点击保存。
列说明会立即更新。
如需关闭预览面板,请点击 关闭。
价格
如需详细了解此功能的价格,请参阅 Gemini in BigQuery 价格概览。
配额和限制
如需了解此功能的配额和限制,请参阅 Gemini in BigQuery 的配额。
限制
- 数据分析适用于 BigQuery 表、BigLake 表、外部表和视图。
- 对于多云客户,来自其他云的数据不可用。
- 数据分析不支持
Geo或JSON列类型。 - 运行数据分析并不能保证每次都显示查询。为了提高生成更具吸引力的查询的可能性,请重新启动数据分析流水线。
- 对于具有列级访问权限控制 (ACL) 和受限用户权限的表,如果您拥有表中所有列的读取权限,则可以生成数据分析。若要运行生成的查询,您必须拥有足够的权限。
- 系统最多可为表中的 350 列生成列说明。
位置
您可以在所有 BigQuery 位置使用数据洞察。Gemini in BigQuery 在全球范围内运行,因此您无法将数据处理限制在特定区域。如需详细了解 Gemini in BigQuery 处理数据的位置,请参阅 Gemini 服务位置。
后续步骤
- 详细了解 Dataplex Universal Catalog 数据分析。
- 了解如何在 BigQuery 中借助 Gemini 编写查询。
- 详细了解 Gemini in BigQuery。
- 了解如何使用数据画布,通过自然语言问题迭代查询结果。