使用结构化数据的数据洞见

本文档介绍了如何为结构化数据生成、查看和管理数据分析。借助 AI 赋能的数据分析,您可以根据表和数据集元数据自动生成说明、关系图和 SQL 查询,从而加快数据探索速度。

在 BigQuery Studio 中,您可以为 BigQuery 数据集、表、 视图、 Google Cloud BigLake 表、 BigQuery 外部表和 Apache Iceberg 命名空间生成数据分析。

在 Knowledge Catalog 中,您可以为由 Google Cloud 的无边界湖仓一体管理的 Apache Iceberg、Apache Hive 和 SAP BDC 表和命名空间生成数据分析。

准备工作

在使用数据分析之前,请确保您已完成以下前提条件:

所需角色

如需获得使用数据分析所需的权限,请让您的管理员为您授予以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。

这些预定义角色包含 使用数据分析所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

使用数据分析需要以下权限:

  • 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) 获取此权限。 了解如何授予角色。

启用 API

如需详细了解如何启用 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 表和命名空间生成数据分析

  1. 在 Google Cloud 控制台中,前往 Knowledge Catalog 搜索 页面。

    转到搜索

  2. 在过滤条件中,找到您的资产类型:

    • 对于 Apache Iceberg 表:选择 Lakehouse 。
    • 对于 Apache Iceberg 命名空间:将 system 过滤条件设置为 BIGLAKE ,并将 type 过滤条件设置为 namespace 。
  3. 从搜索结果中选择 Apache Iceberg 表或命名空间,以打开其条目详情页面。

  4. 点击数据分析 标签页。如果该标签页为空,则表示此表的数据分析尚未生成。

  5. 选择生成选项:

    • 如需生成数据分析并将其永久附加到资产作为元数据切面,请点击生成并发布 。这样,数据分析就可以在 Knowledge Catalog 中被组织内的其他用户编入索引、搜索和查看。

    • 如需在当前会话期间临时生成和查看数据分析,请点击生成但不发布 。

    如需详细了解 生成并发布 模式与 生成但不发布 模式之间的区别,请参阅 生成数据分析的模式。

  6. 选择要生成数据分析的区域,然后点击生成 。

    数据分析需要几分钟才能填充完毕。

  7. 点击数据分析 标签页,然后查看生成的元数据:

    • 对于表:查看 AI 生成的说明和示例查询。
    • 对于命名空间:查看数据集说明、交互式 关系图和查询建议。

    如需查看用于回答问题的 SQL 查询,请点击相应问题。

查看为资源生成的分析洞见

如需查看为资源生成的分析洞见,请完成以下步骤:

  1. 在 Google Cloud 控制台中,前往 Knowledge Catalog 搜索 页面。

    转到搜索

  2. 搜索要查看数据分析的资源 。

  3. 在搜索结果中,点击相应资源以打开其条目详情页面。

  4. 查看为所选资源生成的说明 和查询 。

  5. 如需查看关系图以了解数据点的连接方式,请点击关系(预览版) 标签页。如果您已生成数据集数据分析,则可以在表级层查看关系,也可以在数据集和命名空间级层查看关系。

管理表数据分析

生成并发布表数据分析后,您可以在 Knowledge Catalog 中以元数据切面的形式查看和管理它们。表级数据分析包括表和列说明,以及示例查询。

更新为表生成的说明

您只能使用 Dataplex API 更新表和列说明。 为此,请使用 entries.patch 方法。

更新为表生成的查询

您可以使用 Google Cloud 控制台 和 Dataplex API 更新为表生成的查询。

控制台

  1. 搜索要为其更新生成的查询的表 。

  2. 在搜索结果中,点击相应表以打开其条目详情页面。

  3. 在查询 部分中,点击 修改。

  4. 根据需要更新查询说明。

  5. 管理所有权:默认情况下,来源 设置为智能体 。如果您 修改查询并将来源更改为用户,则后续数据分析 生成运行不会覆盖您的更改。如果来源仍为 智能体,则查询可能会在重新生成期间被替换。

  6. 管理替换:如需防止所有查询在重新运行期间被替换,您可以将用户管理 选项设置为 True 。这适用于该元数据切面的整个查询集,确保不会丢失任何手动更改。

REST

如需更新表的查询,请使用 entries.patch 方法。

更新为表生成的关系

您只能使用 Dataplex API 更新关系。为此,请使用 entries.patch 方法。

管理数据集数据分析

数据集级数据分析侧重于概要说明和数据集范围的查询。

更新为数据集生成的说明

您只能使用 Dataplex API 更新数据集说明。 为此,请使用 entries.patch 方法。

更新为数据集生成的查询

您可以使用 Google Cloud 控制台 和 Dataplex API 更新为数据集生成的查询。

控制台

  1. 搜索要为其更新生成的查询的数据集 。

  2. 在搜索结果中,点击相应数据集以打开其条目详情页面。

  3. 在查询 部分中,点击 修改。

  4. 根据需要更新说明。

  5. 管理所有权:默认情况下,来源 设置为智能体 。如果您 修改查询并将来源更改为用户,则后续数据分析 生成运行不会覆盖您的更改。如果来源仍为 智能体,则查询可能会在重新生成期间被替换。

  6. 管理替换:如需防止所有查询在重新运行期间被替换,您可以将用户管理 选项设置为 True 。这适用于该元数据切面的整个查询集,确保不会丢失任何手动更改。

REST

如需更新数据集的查询,请使用 entries.patch 方法。

更新为数据集生成的条目链接

数据分析发现的关系会存储为 条目链接表条目之间的条目链接。 这些链接包含一个 schema-join 切面,用于描述表的连接方式。

如需修改这些关系或提供手动替换,您必须使用 Dataplex API。

条目链接更新行为

使用 API 管理关系时,务必了解手动 API 更新如何与自动后台扫描互动,以免意外覆盖数据。

  • 手动更新(API 级行为):UpdateEntryLink API 使用 PATCH 方法执行切面级替换:

    • 完全切面替换:如果您在更新请求中添加 schema-join 切面,Knowledge Catalog 会将整个现有切面替换为您提供的新切面。

    • 无自动合并:API 不会自动将新条目合并到内部 joins 列表中。如果您提交的载荷仅包含一个联接,则该切面中所有先前存在的联接都会被移除。

  • 自动扫描(系统级行为):自动扫描(例如数据分析)会在调用 API 之前执行专门的合并逻辑,以确保根据元数据的来源保留高确定性的元数据:

    • 来源优先级:如果多个来源识别出同一关系,Knowledge Catalog 会按以下顺序确定其优先级:

      1. USER(手动修改)
      2. TABLE_CONSTRAINTS
      3. QUERY_HISTORY
      4. AGENT(LLM 建议)
    • LLM 新鲜度:从 AGENT 来源派生的关系是动态的。如果后续扫描不再推荐该关系,则会将其移除。

更新条目链接

如需查看和修改条目链接,请完成以下步骤:

  1. 确定条目链接。

    在更新关系之前,请列出涉及特定表条目的所有条目链接,以查找其资源名称:

    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)
  2. 更新条目链接。

    如需修改目标条目链接的 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:在目标表中用于 联接的列名称

后续步骤