在 BigQuery 中生成数据分析

数据分析提供了一种自动方法来探索和理解您的数据。借助数据分析,Gemini 会使用元数据生成有关表格的问题,并生成相应查询来回答这些问题。这有助于您发现模式、评估数据质量和执行统计分析。

本文档介绍了数据分析的主要功能以及自动生成查询以进行深度数据探索的过程。

准备工作

数据分析是使用 Gemini in BigQuery 生成的。如需开始生成数据分析,您必须先在 BigQuery 中设置 Gemini。Gemini 可能不会在存储数据的同一区域处理数据。如需了解详情,请参阅 Gemini 服务位置

所需的角色

如需创建、管理和检索数据分析,请让您的管理员向您授予以下 IAM 角色:

如需获得对生成的数据分析的只读访问权限,请让您的管理员向您授予以下 IAM 角色:

  • 针对您要查看其数据分析的 BigQuery 表所在项目的 Dataplex DataScan DataViewer (roles/dataplex.dataScanDataViewer) 角色。

如需详细了解如何授予角色,请参阅管理对服务账号的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。如需查看生成数据分析所需的确切权限,请展开所需权限部分:

所需权限

  • bigquery.jobs.create
  • bigquery.tables.get
  • bigquery.tables.getData
  • dataplex.datascans.create
  • dataplex.datascans.get
  • dataplex.datascans.getData
  • dataplex.datascans.run

启用 API

如需使用数据分析,请在项目中启用以下 API:

如需详细了解如何启用 Gemini for Google Cloud API,请参阅在 Google Cloud 项目中启用 Gemini for Google Cloud API

数据分析简介

在探索陌生的新表时,数据分析师通常会面临冷启动问题。该问题通常涉及到数据结构、关键模式和数据中的相关数据分析的不确定性,因此很难着手编写查询。

数据分析通过根据表的元数据自动生成自然语言查询及其等效的 SQL 查询来解决冷启动问题。与其从空白查询编辑器开始,不如使用可提供宝贵数据分析的有意义的查询更快地开始数据探索。如需进一步调查,您可以在数据画布中提出后续问题。

数据分析运行示例

假设有一个名为 telco_churn 且具有以下元数据的表:

字段名称 类型
CustomerID STRING
Gender STRING
资历 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;
    

最佳做法

为提高生成的数据分析的准确性,请遵循以下最佳实践:

以数据分析结果为依据得出数据分析

在生成式 AI 中,建立依据是指将模型输出连接到可验证的信息源的能力。您可以根据数据分析结果生成数据洞见。数据分析功能可分析 BigQuery 表中的列,并识别常见的统计特征,例如典型数据值和数据分布。为表创建数据分析扫描时,您可以选择将扫描结果发布到 BigQuery 和 Dataplex Catalog。BigQuery 会使用数据分析结果执行以下操作,以创建更准确、更相关的查询:

  1. 分析数据分析结果,以识别数据中有趣的模式、趋势或离群值。
  2. 生成重点关注这些模式、趋势或离群值的查询以发掘数据洞见。
  3. 针对数据分析结果验证生成的查询,以确保查询返回有意义的结果。

如果不进行数据分析扫描,Gemini 生成的查询更有可能包含不准确的子句或产生无意义的结果。

确保表的数据分析扫描是最新的,并且结果已发布到 BigQuery。

您可以调整数据分析设置,以增加抽样大小并滤除行和列。运行新的“数据分析”扫描后,重新生成数据分析。

添加表说明

详细的表格说明可说明您要在表中分析的内容,有助于 Gemini in BigQuery 生成更相关的数据分析洞见。添加表格说明后,请重新生成数据分析。

例如,您可以向 telco_churn添加以下说明:“此表会跟踪客户流失数据,包括订阅详情、资历和服务使用情况,以预测客户流失行为。”

添加列说明

列说明可说明各个列的含义或一列与另一列之间的关系,有助于提升数据分析的质量。更新表格中的列说明后,请重新生成数据分析。

例如,您可以向 telco_churn 表的特定列添加以下说明:

  • Tenure:“客户使用服务的月份数。”
  • Churn:“客户是否已停止使用服务。TRUE 表示客户不再使用该服务,FALSE 表示客户处于活跃状态。”

为 BigQuery 表生成数据分析

如需为 BigQuery 表生成数据分析,您必须使用 BigQuery Studio 访问 BigQuery 中的表条目。

  1. 在 Google Cloud 控制台中,进入 BigQuery Studio。

    进入 BigQuery Studio

  2. 探索器窗格中,选择要为其生成数据分析的表。

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

  4. 如需触发数据分析流水线,请点击生成数据分析

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

    如果该表有已发布的数据分析结果,系统会使用这些结果生成数据分析。否则,系统会根据列名称和说明生成数据分析。

  5. 数据分析标签页中,浏览生成的自然语言问题。

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

  7. 如需在 BigQuery 中打开查询,请点击复制到查询

  8. 如需继续提问,请执行以下操作:

    1. 点击提出后续问题。查询会在新数据画布中打开。

    2. 点击运行,然后点击查询这些结果

    3. 如需询问后续问题,请在自然语言提示字段中输入提示,或在查询编辑器中修改 SQL。

  9. 如需生成一组新查询,请点击生成数据分析并再次触发流水线。

为表生成数据分析后,拥有 dataplex.datascans.getData 权限并有权访问该表的任何人都可以查看这些数据分析。

为 BigQuery 外部表生成数据分析

BigQuery 数据分析支持针对存储在 Cloud Storage 中的数据生成 BigQuery 外部表数据分析。您和当前项目的 Dataplex 服务账号必须对包含数据的 Cloud Storage 存储桶具有 Storage Object Viewer (roles/storage.objectViewer) 角色。如需了解详情,请参阅将主账号添加到存储桶级层政策中

如需为 BigQuery 外部表生成数据分析,请按照本文档的为 BigQuery 表生成数据分析部分中的说明操作。

为 BigLake 表生成数据分析

如需为 BigLake 表生成数据分析,请按以下步骤操作:

  1. 在项目中启用 BigQuery Connection API。

    启用 BigQuery Connection API

  2. 创建 BigQuery 连接。如需了解详情,请参阅管理连接

  3. 将 Storage Object Viewer (roles/storage.objectViewer) IAM 角色授予与您创建的 BigQuery 连接对应的服务账号。

    您可以从连接详细信息中检索服务账号 ID。

  4. 如需生成数据分析,请按照本文档的为 BigQuery 表生成数据分析部分中的说明操作。

价格

如需详细了解此功能的价格,请参阅 Gemini in BigQuery 价格概览

配额和限制

如需了解此功能的配额和限制,请参阅 Gemini in BigQuery 的配额

限制

  • 数据分析适用于 BigQuery 表、BigLake 表、外部表和视图。
  • 对于多云客户,来自其他云的数据不可用。
  • 数据分析不支持 GeoJSON 列类型。
  • 运行数据分析并不能保证每次都显示查询。为了提高生成更具吸引力的查询的可能性,请重新启动数据分析流水线。
  • 对于具有列级访问权限控制 (ACL) 和受限用户权限的表,如果您拥有表中所有列的读取权限,则可以生成数据分析。若要运行生成的查询,您必须拥有足够的权限

后续步骤