使用 Gemini 准备数据

本文档介绍了如何为 BigQuery 中的数据准备生成和管理 SQL 代码建议。

如需了解详情,请参阅 BigQuery 数据准备简介

准备工作

在 BigQuery 中打开数据准备编辑器

通过创建新的数据准备,根据现有表或 Cloud Storage 文件创建数据准备,或打开现有的数据准备,您可以在 BigQuery 中打开数据准备编辑器。如需详细了解创建数据准备时会发生什么情况,请参阅数据准备入口点

BigQuery 页面上,您可以通过以下方式进入数据准备编辑器:

新建

如需在 BigQuery 中创建新的数据准备,请按照以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 BigQuery 页面。
    前往 BigQuery
  2. 前往创建新列表,然后点击数据准备。数据准备编辑器会显示在新建未命名的数据准备标签页中。
  3. 在编辑器的搜索栏中,输入表名或关键字,然后选择一个表。系统会为该表打开数据准备编辑器,并在数据标签页上显示数据预览,以及显示 Gemini 提供的一组初始的数据准备建议。
  4. 可选:如需简化视图,请点击全屏全屏以开启全屏模式。
  5. 可选:如需查看数据准备详情及版本记录、添加新评论或回复现有评论,请使用工具栏(预览版)。
  6. 探索数据准备工具栏。

通过表创建

如需根据现有表创建新的数据准备,请按照以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 BigQuery 页面。
    前往 BigQuery
  2. 探索器窗格中,将指针悬停在某个表的上方。
  3. 依次点击 more_vert 菜单 > 查询位置 > 数据准备。系统会为该表打开数据准备编辑器,并在数据标签页上显示数据预览,以及显示 Gemini 提供的一组初始的数据准备建议。
  4. 可选:如需简化视图,请点击全屏全屏以开启全屏模式。
  5. 可选:如需查看数据准备详情及版本记录、添加新评论或回复现有评论,请使用工具栏(预览版)。
  6. 探索数据准备工具栏。

通过 Cloud Storage 文件创建

如需根据 Cloud Storage 中的文件创建新的数据准备,请按照以下步骤操作:

加载文件

  1. 在 Google Cloud 控制台中,前往 BigQuery 页面。
    前往 BigQuery
  2. 新建列表中,点击数据准备。数据准备编辑器会显示在新建未命名的数据准备标签页中。
  3. 在数据源列表中,点击 Google Cloud Storage。系统会打开准备数据对话框。
  4. 来源部分中,从 Cloud Storage 存储桶中选择文件,或输入来源的路径。例如,输入 CSV 文件的路径:STORAGE_BUCKET_NAME/FILE_NAME.csv。 支持通配符搜索,例如 *.csv

    系统会自动检测文件格式。支持的格式包括 Avro、CSV、JSONL、ORC 和 Parquet。其他兼容的文件类型(例如 DAT、TSV 和 TXT)会以 CSV 格式读取。
  5. 定义您将上传文件的外部暂存表。在暂存表部分中,输入新表的项目、数据集和表名称。
  6. 架构部分,查看架构。 Gemini 会检查文件中的列名称。如果未找到任何内容,则会提供建议。

    默认情况下,数据准备文件会将数据加载为字符串。您可以在准备文件数据时定义更具体的数据类型。
  7. 可选:在高级选项中,您可以添加更多信息,例如作业失败前允许的错误数。 Gemini 会根据文件的内容提供其他选项。
  8. 点击创建。系统会为该文件打开数据准备编辑器,并在数据标签页上显示数据预览,以及显示 Gemini 提供的一组初始的数据准备建议。
  9. 可选:如需简化视图,请点击全屏全屏以开启全屏模式。
  10. 可选:如需查看数据准备详细信息及版本记录、添加新评论或回复现有评论,请使用工具栏(预览版)。
  11. 探索数据准备工具栏。

准备文件

在数据视图中,按照以下步骤准备您加载的暂存 Cloud Storage 数据:

  1. 可选:通过以下方式为相关列定义更强的数据类型:浏览建议列表以获取转换建议,或选择列并为其生成建议。
  2. 可选:定义验证规则。如需了解详情,请参阅配置错误表并添加验证规则
  3. 添加目标表
  4. 如需将 Cloud Storage 数据加载到目标表中,请运行数据准备
  5. 可选:安排数据准备运行
  6. 可选:通过逐步处理数据优化数据准备

打开现有项

如需为现有的数据准备打开编辑器,请按照以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 BigQuery 页面。
    前往 BigQuery
  2. 探索器窗格中,点击您的项目名称和数据准备
  3. 选择现有的数据准备。系统会显示数据准备流水线的图表视图。
  4. 在图表中选择其中一个节点。系统会为该表打开数据准备编辑器,并在数据标签页上显示数据预览,以及显示 Gemini 提供的一组初始的数据准备建议。
  5. 可选:如需简化视图,请点击全屏全屏以开启全屏模式。
  6. 可选:如需查看数据准备详情及版本记录、添加新评论或回复现有评论,请使用工具栏(预览版)。
  7. 探索数据准备工具栏。

添加数据准备步骤

您需要分步准备数据。您可以预览或应用 Gemini 建议的步骤。此外,您还可以改进建议,或应用自己的步骤。

应用和改进 Gemini 提供的建议

当您为表打开数据准备编辑器时,Gemini 会检查您加载的表中的数据和架构,并生成过滤和转换建议。建议会显示在步骤列表中的卡片上。

下图显示了您可以应用和改进 Gemini 建议的步骤的位置:

数据准备编辑器中的数据视图,其中显示了用于预览、修改或应用 Gemini 提供的建议的选项。

如需将 Gemini 提供的建议作为数据准备步骤进行应用,请执行以下操作:

  1. 在数据视图中,点击列名称或特定单元格。Gemini 会生成有关过滤和转换数据的建议。
  2. 可选:如需改进建议,请修改表中的一到三个单元格的值,以演示列中的值应该是什么样子。例如,输入一个日期,并采用您希望用于所有日期的格式。Gemini 会根据您的更改生成新的建议。

    下图展示了如何修改值以改进 Gemini 建议的步骤:

    修改单元格中的值以演示该列中的值应该是什么样子,从而改进建议。

  3. 选择建议卡片。

    1. 可选:如需预览建议卡片的结果,请点击预览
    2. 可选:如需使用自然语言修改建议卡片,请点击修改
  4. 点击应用

使用自然语言或 SQL 表达式添加步骤

如果现有建议无法满足您的需求,请添加步骤。选择列或步骤类型,然后使用自然语言描述您想要的内容。

添加转换

  1. 在数据或架构视图中,选择转换选项。您还可以选择列或添加示例,以帮助 Gemini 了解您的数据转换。
  2. 说明字段中,输入提示,例如 Convert the state column to uppercase
  3. 点击发送发送

    Gemini 会根据您的提示生成 SQL 表达式和新的说明。

  4. 目标列列表中,选择或输入列名称。

  5. 可选:如需更新 SQL 表达式,请修改提示,然后点击发送发送,或手动输入 SQL 表达式。

  6. 可选:点击预览,然后查看该步骤。

  7. 点击应用

展平 JSON 列

为了更轻松地访问和分析键值对,请展平 JSON 列。例如,如果您有一个名为 user_properties 的 JSON 列,其中包含键 countrydevice_type,那么展平此列会将 countrydevice_type 提取到各自的顶级列中,以便您直接在分析中使用它们。

Gemini for BigQuery 建议的操作仅从 JSON 结构的顶层提取字段。如果这些提取的字段包含更多 JSON 对象,您可以在后续步骤中将其展平,以便访问其内容。

  1. 在 JSON 源表的数据视图中,选择一列或多个单元格。
  2. 点击展平以生成建议。
  3. 可选:如需更新 SQL 表达式,您可以手动输入 SQL 表达式。
  4. 可选:点击预览,然后查看该步骤。
  5. 点击应用

展平具有以下行为:

  • 选择包含 JSON 的单元格或列后,数据视图中会显示展平选项。点击添加步骤时,默认情况下,不会显示此选项。
  • 如果所选行中不存在某个 JSON 键,则生成的建议中不会包含该键。此问题可能会导致在展平数据时遗漏某些列。
  • 如果在展平期间发生列名称冲突,重复的列名称将采用以下后缀格式:_<i>。例如,如果已存在名为 address 的列,则新的展平列名称将为 address_1
  • 展平列名称遵循 BigQuery 列命名惯例
  • 如果您将 JSON 键字段留空,则默认列名称格式为 f<i>_

展平 RECORDSTRUCT

为了更轻松地访问和分析嵌套字段,请展平数据类型为 RECORDSTRUCT 的列。例如,如果您有一个包含 timestampaction 字段的 event_log 记录,那么展平此记录会将 timestampaction 提取到各自的顶级列中,以便您直接转换它们。

此过程会从记录中提取所有嵌套列(深度最多 10 层),并为每个列创建一个新列。新列名称的创建方式是将父列的名称与嵌套字段名称组合在一起,并用下划线分隔(例如 PARENT-COLUMN-NAME_FIELD-NAME)。原始列会删除。如需保留原始列,您可以从已应用的步骤列表中删除删除列步骤。

如需展平记录,请按照以下步骤操作:

  1. 在源表的数据视图中,选择一个记录列。
  2. 点击展平以生成建议。
  3. 可选:如需更新 SQL 表达式,您可以手动输入 SQL 表达式。
  4. 可选:点击预览,然后查看该步骤。
  5. 点击应用

过滤表格行

如需添加用于移除行的过滤操作,请按照以下步骤操作:

  1. 在数据或架构视图中,选择过滤器选项。您还可以选择列,以帮助 Gemini 了解数据过滤器。
  2. 说明字段中,输入提示,例如 Column ID should not be NULL
  3. 点击生成。 Gemini 会根据您的提示生成 SQL 表达式和新的说明。
  4. 可选:如需更新 SQL 表达式,请修改提示,然后点击发送发送,或手动输入 SQL 表达式。
  5. 可选:点击预览,然后查看该步骤。
  6. 点击应用

过滤表达式格式

用于过滤的 SQL 表达式会保留与指定条件匹配的行。这等同于 SELECT … WHERE SQL_EXPRESSION 语句。

例如,为了保留 year 列大于或等于 2000 的记录,条件为 year >= 2000

表达式必须遵循 BigQuery SQL WHERE 子句的语法。

删除重复数据

如需从数据中移除重复行,请按照以下步骤操作:

  1. 在数据或架构视图中,选择去重选项。Gemini 会提供初始的去重建议。
  2. 可选:如需优化建议,请输入新的说明,然后点击 send 发送
  3. 可选:如需手动配置去重步骤,请使用以下选项:
    • 记录选择列表中,选择以下策略之一:
      • 首行:对于具有相同去重键值的一组行,此策略会根据 ORDER BY 表达式选择第一行,并移除其余行。
      • 末行:对于具有相同去重键值的一组行,此策略会根据 ORDER BY 表达式选择最后一行,并移除其余行。
      • 任意行:对于具有相同去重键值的一组行,此策略会选择该组中的任意一行,并移除其余行。
      • 不重复:移除表中所有列的所有重复行。
    • 去重键字段中,选择一个或多个用于标识重复行的列或表达式。此字段在记录选择策略为首行末行任意行时适用。
    • 排序依据表达式字段中,输入用于定义行顺序的表达式。例如,如需选择最新一行,请输入 datetime DESC。如需选择按名称的字母顺序进行排序的第一行,请输入一个列名称,例如 last_name。该表达式遵循与 BigQuery 中的标准 ORDER BY 子句相同的规则。此字段仅在记录选择策略为首行末行时适用。
  4. 可选:点击预览,然后查看该步骤。
  5. 点击应用

删除列

如需从数据准备中删除一个或多个列,请按照以下步骤操作:

  1. 在数据或架构视图中,选择要删除的列。
  2. 点击删除。系统会为已删除的列添加新的已应用步骤。

使用 Gemini 添加联接操作

在数据准备中,如需在两个来源之间添加联接操作步骤,请按照以下步骤操作:

  1. 在数据准备中某个节点的数据视图中,前往建议列表,然后点击联接选项。
  2. 添加联接对话框中,点击浏览,然后选择联接操作所涉及的另一个表(称为联接右侧)。
  3. 可选:选择要执行的联接操作的类型,例如内联接
  4. 在以下字段中查看 Gemini 生成的联接键信息:

    • 联接说明:联接操作的 SQL 表达式的自然语言说明。在您修改此说明并点击发送发送后,Gemini 会建议新的 SQL 联接条件。
    • 联接条件:联接操作的 ON 子句中的 SQL 表达式。您可以使用 LR 限定符来分别指左侧源表和右侧源表。例如,要将左侧表中的 customer_id 列与右侧表中的 customer_id 列相联接,请输入 L.customerId = R.customerId。这些限定符不区分大小写。

  5. 可选:如需优化 Gemini 提供的建议,请修改联接说明字段,然后点击发送发送

  6. 可选:如需预览数据准备的联接操作设置,请点击预览

  7. 点击应用

    创建了联接操作步骤。您选择的源表(联接的右侧)和联接操作会反映在已应用的步骤列表中以及数据准备的图表视图里的节点中。

聚合数据

  1. 在数据或架构视图中,选择聚合选项。
  2. 说明字段中,输入提示,例如 Find the total revenue for a region
  3. 点击发送

    Gemini 会根据您的提示生成分组键和聚合表达式。

  4. 可选:根据需要修改生成的分组键或聚合表达式。

  5. 可选:您可以手动添加分组键和聚合表达式。

    • 分组键字段中,输入列名称或表达式。如果您将其留空,则生成的表将只包含一行。如果您输入的是表达式,则该表达式必须具有别名(AS 子句),例如 EXTRACT(YEAR FROM order_date) AS order_year。不允许重复。
    • 聚合表达式字段中,输入具有别名(AS 子句)的聚合表达式,例如 SUM(quantity) AS total_quantity。您可以输入多个以逗号分隔的表达式。不允许重复。如需查看受支持的聚合表达式的列表,请参阅聚合函数
  6. 可选:点击预览,然后查看该步骤。

  7. 点击应用

配置错误表并添加验证规则

您可以添加一个用于创建验证规则的过滤器,该验证规则会将错误发送到错误表,或导致数据准备工作失败。

配置错误表

如需配置错误表,请按照以下步骤操作:

  1. 在数据准备编辑器中,前往工具栏,然后点击更多 > 错误表
  2. 点击启用错误表
  3. 定义表位置。
  4. 可选:定义错误保留时长上限。
  5. 点击保存

添加验证规则

如需添加验证规则,请按照以下步骤操作:

  1. 在数据或架构视图中,点击过滤器选项。您还可以选择列,以帮助 Gemini 了解数据过滤器。
  2. 输入相应步骤的说明。
  3. WHERE 子句的形式输入 SQL 表达式。
  4. 可选:如果您希望 SQL 表达式充当验证规则,请选中验证失败的行会转到错误表复选框。此外,您还可以在数据准备工具栏中,依次点击更多 > 错误表,将过滤更改为验证。
  5. 可选:点击预览,然后查看该步骤。
  6. 点击应用

添加或更改目标表

如需为数据准备的输出添加或更改目标表,请按照以下步骤操作:

  1. 在数据或架构视图中,选择目标位置选项。
  2. 选择存储目标表的项目。
  3. 选择其中一个数据集,或加载新的数据集。
  4. 输入目标表。如果该表不存在,数据准备会在首次运行时创建一个新表。如需了解详情,请参阅写入模式
  5. 选择您的数据集作为目标数据集。
  6. 点击保存

查看已应用的步骤的数据样本和架构

如需查看数据准备过程中特定步骤的样本和架构详情,请执行以下操作:

  1. 在数据准备编辑器中,前往步骤列表,然后点击已应用的步骤
  2. 选择一个步骤。系统会显示数据架构标签页,其中显示了此特定步骤的数据样本和架构。

修改已应用的步骤

如需修改已应用的步骤,请执行以下操作:

  1. 在数据准备编辑器中,前往步骤列表,然后点击已应用的步骤
  2. 选择一个步骤。
  3. 在该步骤旁边,点击 more_vert 菜单 > 修改
  4. 修改已应用的步骤对话框中,您可以执行以下操作:
    • 修改步骤说明。
    • 通过修改说明并点击 send 发送从 Gemini 获取建议。
    • 修改 SQL 表达式。
  5. 目标列字段中,选择一个列。
  6. 可选:点击预览,然后查看该步骤。
  7. 点击应用

删除已应用的步骤

如需删除已应用的步骤,请执行以下操作:

  1. 在数据准备编辑器中,前往步骤列表,然后点击已应用的步骤
  2. 选择一个步骤。
  3. 点击 more_vert 菜单 > 删除

进行数据准备

在添加数据准备步骤、配置目标并修复所有验证错误后,您可以对数据样本执行测试运行,也可以部署步骤并安排数据准备工作。如需了解详情,请参阅安排数据准备工作

刷新数据准备样本

样本中的数据不会自动进行刷新。如果数据准备的源表中的数据发生了更改,但这些更改未反映在数据准备的数据样本中,请点击更多 > 刷新样本

后续步骤