生成数据集分析洞见
本文档介绍了如何为 BigQuery 数据集生成数据集洞见。数据集洞见通过生成关系图和跨表查询,帮助您了解数据集内各个表之间的关系。
数据集洞见可自动发现并直观呈现图表中的表关系,识别主键和外键关系,并生成跨表查询示例,从而帮助您加快探索包含多个表的数据集。这有助于在没有文档的情况下了解数据结构,发现表之间由架构定义、基于使用情况或由 AI 推断的关系,以及生成连接多个表的复杂查询。
如需了解表和数据集分析洞见,请参阅数据分析洞见概览。
生成数据集分析洞见的模式
在生成数据集分析洞见时,BigQuery 提供两种模式:
| 模式 | 说明 | 用法 |
|---|---|---|
| 生成并发布 |
将生成的数据集分析洞见作为元数据切面和关系持久保存到 Knowledge Catalog 中。您必须拥有发布所需的权限。如果您使用生成并发布,BigQuery 会执行以下操作:
|
如果需要创建持久且可重用的企业级数据文档,或者需要构建目录驱动型治理工作流,请使用此模式。 |
| 生成但不发布 |
按需创建数据集分析洞见,例如说明、自然语言问题、关系和 SQL 查询。 生成但不发布不会将分析洞见发布到 Knowledge 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。
完成数据分析扫描
为了提高分析洞见的质量,请为数据集中的表生成数据分析扫描。
所需的角色
如需获得生成、管理和检索数据集分析所需的权限,请让您的管理员为您授予以下 IAM 角色:
-
如需生成、管理和检索数据洞见,请执行以下操作:
- 针对项目的 Dataplex DataScan Editor (
roles/dataplex.dataScanEditor) 或 Dataplex DataScan Administrator (roles/dataplex.dataScanAdmin) 角色 - 针对表的 BigQuery Data Editor (
roles/bigquery.dataEditor) 角色 - 项目的 BigQuery User (
roles/bigquery.user) 或 BigQuery Studio User (roles/bigquery.studioUser) - 项目的 BigQuery Resource Viewer (
roles/bigquery.resourceViewer)
- 针对项目的 Dataplex DataScan Editor (
-
如需查看数据洞见,请执行以下操作:
- 针对项目的 Dataplex DataScan DataViewer (
roles/dataplex.dataScanDataViewer) - 针对数据集的 BigQuery Data Viewer (
roles/bigquery.dataViewer) 角色
- 针对项目的 Dataplex DataScan DataViewer (
-
将分析洞见发布到 Knowledge Catalog:Dataplex Entry and EntryLink Owner (
roles/dataplex.entryOwner) 角色(针对条目组)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
如需查看生成数据洞察所需的确切权限,请展开所需权限部分:
所需权限
bigquery.datasets.get:读取数据集元数据bigquery.jobs.create:创建作业bigquery.jobs.listAll:列出项目中的所有作业bigquery.tables.get:获取表元数据bigquery.tables.getData:获取表格数据和元数据dataplex.datascans.create:创建 DataScan 资源dataplex.datascans.get:读取 DataScan 资源元数据dataplex.datascans.getData:读取 DataScan 执行结果dataplex.datascans.run:按需运行 DataScandataplex.entryGroups.useSchemaJoinEntryLink:使用schema-join条目链接dataplex.entryGroups.useSchemaJoinAspect:使用架构联接方面dataplex.entryLinks.create:创建条目链接dataplex.entryLinks.update:更新条目链接dataplex.entryLinks.delete:删除条目链接dataplex.entries.link:链接条目dataplex.entries.update:更新条目dataplex.entryGroups.useDescriptionsAspect:使用说明方面dataplex.entryGroups.useQueriesAspect:使用查询方面
生成数据集分析洞见
控制台
在 Google Cloud 控制台中,前往 BigQuery Studio。
在探索器窗格中,选择项目,然后选择要为其生成数据洞见的数据集。
点击数据分析标签页。
如需生成分析洞见并将其发布到 Knowledge Catalog,请点击生成并发布。
如需生成分析洞见,但不将其发布到 Knowledge Catalog,请点击生成但不发布。
如需详细了解生成并发布模式与生成但不发布模式之间的区别,请参阅生成数据集分析洞见的模式。
如果您的数据集位于多区域,系统可能会提示您选择一个区域来生成分析洞见。选择与要创建分析洞见扫描的多区域位置相对应的区域。
数据洞察需要几分钟才能填充完毕。如果数据集中的表具有数据分析结果,则分析洞见的质量会提高。
生成分析洞见后,BigQuery 会显示数据集说明、关系图、关系表和示例跨表查询。
REST
如需以编程方式生成数据分析,请使用 Knowledge Catalog DataScans API。为此,请完成以下步骤:
为 BigQuery 数据集生成数据文档数据扫描
使用
dataScans.create方法创建数据文档数据扫描。 您可以选择性地通过将catalog_publishing_enabled参数设置为true,将这些分析洞见发布到 Knowledge Catalog。例如:
alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"' 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" }, "executionSpec": { "trigger": { "onDemand": {} } }, "type": "DATA_DOCUMENTATION", "dataDocumentationSpec": { "catalog_publishing_enabled": true } }'替换以下内容:
- PROJECT_ID:数据集所在的 Google Cloud项目的 ID
- LOCATION:数据扫描运行的区域
- DATASCAN_ID:您为此扫描提供的唯一名称
- DATASET_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 方法检查扫描作业运行是否完成。如需检索完整的结果(包括数据洞见和发布状态),请将 view 参数设置为 FULL。
使用作业 ID 获取作业的状态。例如:
gcurl -X GET https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataScans/DATASCAN_ID/jobs/JOB_ID?view=FULL
当状态为 SUCCEEDED 或 FAILURE 时,表示作业已完成。
成功的作业响应会在 dataDocumentationResult 字段中包含生成的分析洞见。
验证发布到 Knowledge Catalog 的操作
如果 catalog_publishing_enabled 设置为 true,则在数据扫描作业完成后,系统会异步将分析洞见发布到 Knowledge Catalog。如需验证是否已持久保留数据洞见,请使用 Dataplex API 检查数据集的各个方面。
虽然数据洞见是从数据集级数据扫描生成的,但生成的条目链接会存储在它们所连接的表之间。如需验证这些关系,请使用 lookupEntryLinks 方法检索与特定表格条目关联的条目链接。
如需检索 BigQuery 数据集的元数据,请使用 entries.get 方法。
如需包含所有方面,请将 view 参数设置为 FULL。例如:
gcurl -X GET https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/entryGroups/@bigquery/entries/bigquery.googleapis.com/projects/DATASET_PROJECT_ID/datasets/DATASET_ID?view=FULL
替换以下内容:
- PROJECT_ID:配置 DataScan 的 Google Cloud项目的 ID
- LOCATION:条目组所在的区域
- DATASET_PROJECT_ID:BigQuery 数据集所在的 Google Cloud项目的 ID
- DATASET:BigQuery 数据集的 ID
如果成功发布到 Knowledge Catalog,则以下方面会附加到 BigQuery 数据集:
- 说明:包含 AI 生成的数据集说明
- 查询:包含与数据集相关的 SQL 查询
- 关系:以数据集中的表之间的条目链接形式持久存在
查看和保存数据集说明
Gemini 会生成数据集的自然语言说明,总结其中包含的表类型以及所代表的业务领域。如需将此说明保存到数据集的元数据中,请点击保存到详细信息。
您可以在保存详细信息之前修改说明。
探索关系图
关系图直观地呈现了数据集中的各个表之间的关系。它会以节点的形式显示关联性最强的 10 个表,并以线条表示它们之间的关系。
- 如需查看关系详情(例如联接两个表的列),请将鼠标悬停在连接表节点的边上。
- 如需重新排列图表以提高可见性,请拖动表格节点。
使用关系表
关系表以表格格式列出了发现的关系。每一行都表示两个表之间的关系,显示源表和列以及目标表和列。“来源”列 (Source) 指示了关系的确定方式:
- 由 LLM 推断。Gemini 根据数据集中的表名称、列名称和说明推断出的关系。
- 基于使用量。根据频繁联接从查询日志中提取的关系。
- 由架构定义。从表架构中现有的主键和外键映射派生的关系。
您可以过滤特定表的关系,也可以针对检测到的关系的质量提供反馈。如需将生成的数据集说明和关系导出到 JSON 文件,请点击导出为 JSON 格式。
使用查询建议
Gemini 会根据发现的关系生成示例查询。这些是自然语言问题,附带相应的 SQL 查询,用于联接数据集中的多个表。
如需查看 SQL 查询,请点击相应问题。
如需在 BigQuery 查询编辑器中打开查询,请点击复制到查询。然后,您可以运行查询或修改查询。
如需询问后续问题,请点击询问后续问题,系统随即会打开一个未命名的数据画布,您可以在其中与 Gemini 对话,探索数据。
管理生成的分析洞见
为数据集生成分析洞见后,您可以在 Knowledge Catalog 中管理、更新或删除这些洞见。 如需了解详情,请参阅管理数据集洞见。
后续步骤
- 了解数据洞察概览。
- 了解如何生成表格数据洞见。
- 详细了解 Knowledge Catalog 数据分析。