本文档介绍了如何为结构化数据生成、查看和管理数据分析。借助 AI 赋能的数据分析,您可以根据表和数据集元数据自动生成说明、关系图和 SQL 查询,从而加快数据探索速度。
在 BigQuery Studio 中,您可以为 BigQuery 数据集、表、 视图、 Google Cloud BigLake 表、 BigQuery 外部表和 Apache Iceberg 命名空间生成数据分析。
在 Knowledge Catalog 中,您可以为由 Google Cloud 的无边界湖仓一体管理的 Apache Iceberg、Apache Hive 和 SAP BDC 表和命名空间生成数据分析。
准备工作
在使用数据分析之前,请确保您已完成以下前提条件:
所需角色
如需获得使用数据分析所需的权限,请让您的管理员为您授予以下 IAM 角色:
-
获取对生成的分析洞见的只读访问权限:
Dataplex DataScan DataViewer (
roles/dataplex.dataScanDataViewer) 针对包含资源的项目的 -
读取 Apache Iceberg、Apache Hive 或 SAP BDC 表数据:
BigLake Viewer (
roles/biglake.viewer) 针对资源的 -
将说明发布为切面:
Dataplex Catalog Editor (
roles/dataplex.catalogEditor) 针对资源的 -
将查询发布为切面:
Dataplex Entry and EntryLink Owner (
roles/dataplex.entryOwner) 针对资源的
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含 使用数据分析所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
使用数据分析需要以下权限:
-
dataplex.datascans.create -
dataplex.datascans.get -
dataplex.datascans.getData -
dataplex.datascans.run
启用 API
如需使用数据分析,请在项目中启用以下 API:
- Dataplex API
- BigQuery API
- Gemini for Google Cloud API
启用 API 所需的角色
如需启用 API,您需要拥有 serviceusage.services.enable 权限。如果您
创建了项目,则可能已通过
所有者角色 (roles/owner) 拥有此权限。否则,您可以通过
Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获取此权限。
了解如何授予角色。
如需详细了解如何启用 Gemini for Google Cloud API,请参阅 在项目中启用 Gemini for Google Cloud API Google Cloud 。
准备数据
对于 Lakehouse 表,请确保您的数据位于 Cloud Storage 中,并且您已创建 Lakehouse 表。
对于 Apache Iceberg REST Catalog 表,请确保您的表已在 Lakehouse 运行时目录中注册。
在 BigQuery 中生成数据分析
BigQuery 数据集、表、视图、 Lakehouse 表和 BigQuery 外部表的数据分析是使用 Gemini in BigQuery 生成的,并且只能在 BigQuery Studio 中生成。
您必须先 设置 Gemini in BigQuery, 然后才能生成数据分析。生成数据分析后,您可以在 Knowledge Catalog 中查看和修改它们。
如需详细了解如何在 BigQuery 中生成数据分析,请参阅以下文档:
为 Apache Iceberg 表和命名空间生成数据分析
在 Google Cloud 控制台中,前往 Knowledge Catalog 搜索 页面。
在过滤条件中,找到您的资产类型:
- 对于 Apache Iceberg 表:选择 Lakehouse 。
- 对于 Apache Iceberg 命名空间:将
system过滤条件设置为 BIGLAKE ,并将type过滤条件设置为 namespace 。
从搜索结果中选择 Apache Iceberg 表或命名空间,以打开其条目详情页面。
点击数据分析 标签页。如果该标签页为空,则表示此表的数据分析尚未生成。
选择生成选项:
如需生成数据分析并将其永久附加到资产作为元数据切面,请点击生成并发布 。这样,数据分析就可以在 Knowledge Catalog 中被组织内的其他用户编入索引、搜索和查看。
如需在当前会话期间临时生成和查看数据分析,请点击生成但不发布 。
如需详细了解 生成并发布 模式与 生成但不发布 模式之间的区别,请参阅 生成数据分析的模式。
选择要生成数据分析的区域,然后点击生成 。
数据分析需要几分钟才能填充完毕。
点击数据分析 标签页,然后查看生成的元数据:
- 对于表:查看 AI 生成的说明和示例查询。
- 对于命名空间:查看数据集说明、交互式 关系图和查询建议。
如需查看用于回答问题的 SQL 查询,请点击相应问题。
查看为资源生成的分析洞见
如需查看为资源生成的分析洞见,请完成以下步骤:
在 Google Cloud 控制台中,前往 Knowledge Catalog 搜索 页面。
在搜索结果中,点击相应资源以打开其条目详情页面。
查看为所选资源生成的说明 和查询 。
如需查看关系图以了解数据点的连接方式,请点击关系(预览版) 标签页。如果您已生成数据集数据分析,则可以在表级层查看关系,也可以在数据集和命名空间级层查看关系。
管理表数据分析
生成并发布表数据分析后,您可以在 Knowledge Catalog 中以元数据切面的形式查看和管理它们。表级数据分析包括表和列说明,以及示例查询。
更新为表生成的说明
您只能使用 Dataplex API 更新表和列说明。 为此,请使用 entries.patch 方法。
更新为表生成的查询
您可以使用 Google Cloud 控制台 和 Dataplex API 更新为表生成的查询。
控制台
在搜索结果中,点击相应表以打开其条目详情页面。
在查询 部分中,点击 修改。
根据需要更新查询说明。
管理所有权:默认情况下,来源 设置为智能体 。如果您 修改查询并将来源更改为用户,则后续数据分析 生成运行不会覆盖您的更改。如果来源仍为 智能体,则查询可能会在重新生成期间被替换。
管理替换:如需防止所有查询在重新运行期间被替换,您可以将用户管理 选项设置为 True 。这适用于该元数据切面的整个查询集,确保不会丢失任何手动更改。
REST
如需更新表的查询,请使用 entries.patch 方法。
更新为表生成的关系
您只能使用 Dataplex API 更新关系。为此,请使用 entries.patch 方法。
管理数据集数据分析
数据集级数据分析侧重于概要说明和数据集范围的查询。
更新为数据集生成的说明
您只能使用 Dataplex API 更新数据集说明。 为此,请使用 entries.patch 方法。
更新为数据集生成的查询
您可以使用 Google Cloud 控制台 和 Dataplex API 更新为数据集生成的查询。
控制台
搜索要为其更新生成的查询的数据集 。
在搜索结果中,点击相应数据集以打开其条目详情页面。
在查询 部分中,点击 修改。
根据需要更新说明。
管理所有权:默认情况下,来源 设置为智能体 。如果您 修改查询并将来源更改为用户,则后续数据分析 生成运行不会覆盖您的更改。如果来源仍为 智能体,则查询可能会在重新生成期间被替换。
管理替换:如需防止所有查询在重新运行期间被替换,您可以将用户管理 选项设置为 True 。这适用于该元数据切面的整个查询集,确保不会丢失任何手动更改。
REST
如需更新数据集的查询,请使用 entries.patch 方法。
更新为数据集生成的条目链接
数据分析发现的关系会存储为
条目链接表条目之间的条目链接。
这些链接包含一个 schema-join 切面,用于描述表的连接方式。
如需修改这些关系或提供手动替换,您必须使用 Dataplex API。
条目链接更新行为
使用 API 管理关系时,务必了解手动 API 更新如何与自动后台扫描互动,以免意外覆盖数据。
手动更新(API 级行为):
UpdateEntryLinkAPI 使用PATCH方法执行切面级替换:完全切面替换:如果您在更新请求中添加
schema-join切面,Knowledge Catalog 会将整个现有切面替换为您提供的新切面。无自动合并:API 不会自动将新条目合并到内部
joins列表中。如果您提交的载荷仅包含一个联接,则该切面中所有先前存在的联接都会被移除。
自动扫描(系统级行为):自动扫描(例如数据分析)会在调用 API 之前执行专门的合并逻辑,以确保根据元数据的来源保留高确定性的元数据:
来源优先级:如果多个来源识别出同一关系,Knowledge Catalog 会按以下顺序确定其优先级:
USER(手动修改)TABLE_CONSTRAINTSQUERY_HISTORYAGENT(LLM 建议)
LLM 新鲜度:从
AGENT来源派生的关系是动态的。如果后续扫描不再推荐该关系,则会将其移除。
更新条目链接
如需查看和修改条目链接,请完成以下步骤:
确定条目链接。
在更新关系之前,请列出涉及特定表条目的所有条目链接,以查找其资源名称:
gcurl -X GET "https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/entryGroups/@bigquery/entryLinks?filter=entry_references.name=\"TABLE_ENTRY_NAME\""替换以下内容:
- PROJECT_ID:您的 Google Cloud 项目 ID
- LOCATION:触发数据扫描的区域
- TABLE_ENTRY_NAME:BigQuery 表条目的完整资源名称(例如
bigquery.googleapis.com/projects/my-project/datasets/my_dataset/tables/my_table)
更新条目链接。
如需修改目标条目链接的
schema-join切面,请使用PATCH方法:gcurl -X PATCH "https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/entryGroups/@bigquery/entryLinks/ENTRYLINK_ID?aspectKeys=dataplex-types.global.schema-join" \ -d '{ "aspects": { "dataplex-types.global.schema-join": { "data": { "joins": [ { "source": { "name": "PROJECT_ID.DATASET_ID.SOURCE_TABLE", "fields": ["SOURCE_FIELD"] }, "target": { "name": "PROJECT_ID.DATASET_ID.TARGET_TABLE", "fields": ["TARGET_FIELD"] }, "type": "JOIN", "inferenceSource": "USER" } ], "userManaged": false } } } }'替换以下内容:
- ENTRYLINK_ID:在上一步识别中检索到的条目链接的 ID
- DATASET_ID:您的 BigQuery 数据集的 ID
- SOURCE_TABLE:源表的名称
- SOURCE_FIELD:在源表中用于 联接的列名称
- TARGET_TABLE:目标表的名称
- TARGET_FIELD:在目标表中用于 联接的列名称
后续步骤
详细了解结构化数据的数据分析。
了解如何对非结构化数据使用发现扫描。
了解如何对非结构化数据使用数据分析。