生成表格数据分析
本文档介绍了如何为 BigQuery 表、BigLake 表和外部表生成表数据分析。表格分析洞见可根据表格元数据生成自然语言问题和 SQL 查询,帮助您了解单个表格中的数据。
借助表格数据洞见,您可以快速了解新表格或不熟悉的表格的结构和内容,而无需编写复杂的查询,从而加快数据探索速度。您还可以根据自然语言问题生成 SQL 查询,从而减少手动编写查询所需的时间和精力。表格数据洞见还可以帮助非 SQL 用户通过这些自然语言查询来理解和分析数据。
如需了解表和数据集分析洞见,请参阅数据分析洞见概览。
生成表格数据分析洞见的模式
在生成表格分析洞见时,BigQuery 提供两种模式:
| 模式 | 说明 | 用法 |
|---|---|---|
| 生成并发布(预览版) |
将生成的表分析洞见作为元数据切面持久保存到 Dataplex Universal Catalog 中。您必须拥有发布所需的必要权限。当您使用生成并发布时,系统会执行以下操作:
|
对于持久存在且可重复使用的企业级数据文档,或者在构建目录驱动型治理工作流时,请使用此模式。 |
| 生成但不发布 |
按需创建表格分析洞见,例如说明、自然语言问题和 SQL 查询。生成但不发布不会将分析洞见发布到 Dataplex Universal Catalog。 |
使用此模式可进行快速的临时探索,避免使目录杂乱无章。 |
准备工作
数据洞察是使用 Gemini in BigQuery 生成的。如需开始生成数据洞察,您必须先设置 Gemini in BigQuery。
启用 API
如需使用数据分析洞见,请在项目中启用以下 API:Dataplex API、BigQuery API 和 Gemini for Google Cloud API。
启用 API 所需的角色
如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (roles/serviceusage.serviceUsageAdmin),该角色包含 serviceusage.services.enable 权限。了解如何授予角色。
如需详细了解如何启用 Gemini for Google Cloud API,请参阅在 Google Cloud 项目中启用 Gemini for Google Cloud API。
角色与权限
如需创建、管理和检索数据分析,请让您的管理员向您授予以下 Identity and Access Management (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
为 BigQuery 表生成数据分析
如需为 BigQuery 表生成分析洞见,您可以使用Google Cloud 控制台或 Dataplex Universal Catalog DataScans API 支持的 DATA_DOCUMENTATION 扫描类型。这些扫描会生成元数据、用于数据探索的 SQL 查询、架构说明和表级摘要。
控制台
如需为 BigQuery 表生成数据洞察,您必须使用 BigQuery Studio 在 BigQuery 中访问表条目。
在 Google Cloud 控制台中,前往 BigQuery Studio。
在探索器窗格中,依次选择项目、数据集和要为其生成数据分析的表。
点击数据分析标签页。如果该标签页为空,则表示此表的数据分析尚未生成。
如需生成分析洞见并将其发布到 Dataplex Universal Catalog,请点击生成并发布(预览版)。
如需生成分析洞见但不将其发布到 Dataplex Universal Catalog,请点击生成但不发布。
如需详细了解生成并发布模式与生成但不发布模式之间的区别,请参阅生成分析洞见的模式。
选择一个区域以生成分析洞见,然后点击生成。
数据洞察需要几分钟才能填充完毕。
如果可使用表的已发布数据分析结果,则系统会使用这些内容生成数据洞察。否则,系统会根据列名称和说明生成数据洞察。如需了解详情,请参阅可提高生成的数据洞见质量的最佳实践。
在数据分析标签页中,浏览生成的自然语言问题。
如需查看用于回答问题的 SQL 查询,请点击相应问题。
如需在 BigQuery 中打开查询,请点击复制到查询。
如需提问后续问题,请执行以下操作:
点击接着提问。查询会在新的数据画布中打开。
点击运行,然后点击查询这些结果。
如需提出后续问题,请在自然语言提示字段中输入提示,或在查询编辑器中修改 SQL。
如需生成一组新查询,请点击生成数据分析并再次触发流水线。
为表生成数据洞察后,拥有 dataplex.datascans.getData 权限且可以访问表的任何人都可以查看这些数据洞察。
REST
如需以编程方式生成分析洞见,请使用 Dataplex Universal Catalog DataScans API。为此,请完成以下步骤:
可选:为表创建数据分析扫描
数据分析扫描的存在可减少 Gemini 的幻觉和近似值,因为它们会将输出结果基于数据中存在的实际值。
如需创建并运行数据分析扫描,请按以下步骤操作:
使用
dataScans.create方法创建数据分析扫描。使用
dataScans.run方法运行数据分析扫描。等待运行完成。通过将以下数据分析标签附加到 BigQuery 表,将扫描结果发布到该表:
dataplex-dp-published-scan:DATASCAN_IDdataplex-dp-published-project:PROJECT_IDdataplex-dp-published-location:LOCATION
如需了解详情,请参阅向表和视图添加标签。
为 BigQuery 表生成数据文档数据扫描
您可以选择运行标准受管扫描,也可以选择运行简化的单次扫描。
方法 A:标准受管扫描(创建 + 运行)
如果您想随时间推移管理扫描资源,请使用此方法。
- 使用
dataScans.create方法创建数据文档数据扫描。
您可以使用 generation_scopes 参数自定义生成范围,以包含架构、说明、查询或它们的组合。您可以选择将这些数据洞见发布到 Dataplex Universal Catalog,方法是将 catalogPublishingEnabled 参数设置为 true。
如需生成架构、表说明和 SQL 查询,请将
data_documentation_spec留空或将generation_scopes设置为ALL。例如: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": { "generationScopes": "ALL" "catalogPublishingEnabled": true } }'替换以下内容:
- PROJECT_ID:数据集所在的 Google Cloud项目的 ID
- LOCATION:数据扫描运行的区域
- DATASCAN_ID:您为此扫描提供的唯一名称
- DATASET_ID:正在扫描的 BigQuery 数据集的 ID
- TABLE_ID:正在扫描的 BigQuery 表的 ID
如需在不使用 SQL 查询的情况下生成架构、表说明和列说明,请将
generation_scopes设置为TABLE_AND_COLUMN_DESCRIPTIONS。例如: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": { "generationScopes": "TABLE_AND_COLUMN_DESCRIPTIONS" "catalogPublishingEnabled": true } }'如需生成不含说明的 SQL 查询,请将
generation_scopes设置为SQL_QUERIES。例如: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": { "generationScopes": "SQL_QUERIES" "catalogPublishingEnabled": true } }'
使用
dataScans.run方法启动数据文档扫描作业。例如:
gcurl -X POST \ https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/\ dataScans/DATASCAN_ID:run此请求会返回唯一的作业 ID 以及初始状态。
方法 B:一次性扫描(简化版)
使用此方法可在单次 API 调用中启动并完成扫描。 此方法无需单独调用 run 方法,并允许使用存留时间 (TTL) 功能自动删除扫描资源。
使用 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"
},
"type": "DATA_DOCUMENTATION",
"dataDocumentationSpec": {
"generationScopes": "ALL",
"catalogPublishingEnabled": true
}
"executionSpec": {
"trigger": {
"one_time": {
"ttl_after_scan_completion": { "seconds": TTL_TIME }
}
}
}
}'
替换以下内容:
- PROJECT_ID:数据集所在的 Google Cloud项目的 ID
- LOCATION:数据扫描运行的区域
- DATASCAN_ID:您为此扫描提供的唯一名称
- DATASET_ID:正在扫描的 BigQuery 数据集的 ID
- TABLE_ID:正在扫描的 BigQuery 表的 ID
- TTL_TIME:扫描资源应自动删除的持续时间(以秒为单位)(例如,
3600表示 1 小时)
查看数据文档扫描状态
使用 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 表
如需将扫描结果发布到 BigQuery 表,请将以下数据文档标签附加到该表:
dataplex-data-documentation-published-scan:DATASCAN_IDdataplex-data-documentation-published-project:PROJECT_IDdataplex-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 语言支持。
生成描述
如需生成表和列说明,请按照以下步骤操作:
按照本文档相关部分中的说明生成分析洞见:
点击架构标签页。
点击查看列说明。
系统会显示生成的表说明和列说明。
如需修改并保存生成的表说明,请执行以下操作:
在表说明部分中,点击保存到详细信息。
如需将当前说明替换为生成的说明,请点击复制建议的说明。
根据需要修改表说明,然后点击保存到详细信息。
系统会立即更新表说明。
如需修改并保存生成的列说明,请执行以下操作:
在列说明部分中,点击保存到架构。
系统会在每个列的新说明字段中填充生成的列说明。
根据需要修改列说明,然后点击保存。
列说明会立即更新。
如需关闭预览面板,请点击 关闭。
生成数据洞见方面的最佳实践
如需提高生成的数据洞察的准确性,请遵循以下建议:
提供全面的说明。确保数据集中的表和列都有清晰详细的说明。
使用分析结果为数据洞察建立依据。如果说明不可用,请确保将数据分析扫描与数据集中的每个表关联,以帮助生成有根据的数据洞见。
明确定义规则。在相应表的说明中,添加洞见模块用于影响关系生成的任何关系或业务逻辑。
使用数据分析结果为数据洞察建立依据
在生成式 AI 中,建立依据是指将模型输出连接到可验证的信息源的能力。您可以使用数据分析结果为生成的表格分析洞见建立依据。数据分析可分析 BigQuery 表中的列,并识别常见的统计特征,例如典型数据值和数据分布。
为表创建数据分析扫描时,您可以选择将扫描结果发布到 Google Cloud 控制台中的 BigQuery 和 Dataplex Universal Catalog 页面。数据洞见会执行以下操作,以便使用数据分析结果创建更准确、更相关的查询:
分析数据分析结果,以识别数据中的有趣模式、趋势或离群值。
生成重点关注这些模式、趋势或离群值的查询以发掘数据洞察
针对数据分析结果验证生成的查询,以确保查询返回有意义的结果。
如果不使用数据分析扫描,则会发生以下情况:
生成的查询更有可能包含不准确的子句或生成无意义的结果。
生成的列说明仅基于列名称。
确保针对表的数据分析扫描是最新的,并且结果已发布到 BigQuery。
您可以调整数据分析设置,以增大采样规模并过滤出行和列。运行新的数据分析扫描后,请重新生成数据洞察。
如果数据集中的表具有数据分析结果,数据集分析洞见的质量也会显著提高。
添加表说明
详细的表说明可用于描述您想在表中分析的内容,从而帮助 Gemini in BigQuery 生成更相关的表和数据集洞见。添加表说明后,请重新生成数据洞察。
例如,您可以向 telco_churn 表(例如表数据分析示例中使用的表)添加以下说明:
This table tracks customer churn data, including subscription details, tenure,
and service usage, to predict customer churn behavior.
如果您保存 Gemini 生成的表说明,则该说明将用于生成未来的分析洞见。
添加列说明
列说明可用于说明各列的内容,或一个列与另一个列之间的关系,从而提高表格和数据集数据洞察的质量。在表中更新列说明后,请重新生成数据洞察。
例如,您可以向 telco_churn 表(例如表格数据分析示例中使用的表格)的特定列添加以下说明:
对于 tenure 列:
The number of months the customer has been with the service.
对于 churn 列:
Whether the customer has stopped using the service. TRUE indicates the customer
no longer uses the service, FALSE indicates the customer is active.
如果您保存 Gemini 生成的列说明,那么这些说明将用于生成未来的分析洞见。
后续步骤
- 请参阅数据洞察概览。
- 了解如何生成数据集分析洞见。
- 详细了解 Dataplex Universal Catalog 数据分析。