数据转换简介

本文档介绍了在 BigQuery 表中转换数据的不同方式。

如需详细了解数据集成,请参阅加载、转换和导出数据简介

转换数据的方法

您可以通过以下方式转换 BigQuery 中的数据:

  • 使用数据操纵语言 (DML) 转换 BigQuery 表中的数据。
  • 使用具体化视图自动缓存查询结果,以提高性能和效率。
  • 使用持续查询实时分析传入数据,并将输出行持续插入 BigQuery 表中,或导出到 Pub/Sub 或 Bigtable。
  • 使用 BigQuery 流水线Dataform 在 BigQuery 中开发、测试、控制版本和安排流水线。
  • 结合使用数据准备功能和具备上下文感知能力的 AI 生成转换建议,清理数据以便进行分析。数据准备功能由 Dataform API 提供支持。

下表显示了每种转换方法的不同特性。

转换方法 转换目标 定义方法 转换频率
数据操纵语言 (DML) 表格(原地) SQL DML 由用户发起或安排
具体化视图 具体化视图 SQL 查询 自动或手动刷新
持续查询 Pub/Sub 主题Bigtable 表 使用 EXPORT DATA 的 SQL 查询 连续
Dataform 表格 Dataform 核心 (SQLX) 已安排(流水线)
BigQuery 数据流水线 表格 BigQuery 数据流水线 已安排(流水线)
数据准备 表格 可视化编辑器 已安排

您还可以查看 BigQuery 表格的更改历史记录,以检查在指定时间范围内对表进行的转换。

使用 DML 转换数据

您可以使用数据操纵语言 (DML) 来转换 BigQuery 表中的数据。DML 语句是 GoogleSQL 查询,这些查询可以操控现有的表数据以添加或删除行、修改现有行中的数据,或者将数据与其他表中的值合并。分区表也支持 DML 转换。

您可以并发运行多个 DML 语句,其中 BigQuery 会将多个 DML 语句排成队列依次转换数据。 BigQuery 根据转换类型来管理并发 DML 语句的运行方式

使用具体化视图转换数据

具体化视图是预计算视图,可定期缓存 SQL 查询结果以提高性能和效率。BigQuery 利用来自具体化视图的预计算结果,并尽可能只从基表中读取更改以计算最新结果。

当基表发生变化时,系统会在后台预计算具体化视图。基表中的任何增量数据更改都会自动添加到具体化视图,无需用户执行任何操作。

使用持续查询转换数据

持续查询是持续运行的 SQL 语句。借助持续查询,您可以实时分析 BigQuery 中的传入数据。您可以将持续查询生成的输出行插入 BigQuery 表中,也可以将其导出到 Pub/Sub 或 Bigtable。

使用 Dataform 转换数据

借助 Dataform,您可以在数据集成的提取、加载和转换 (ELT) 流程中管理数据转换。从源系统中提取原始数据并将其加载到 BigQuery 后,您可以使用 Dataform 将其转换为整理、测试和记录的表套件。在 DML 中,您采用命令式方式,告知 BigQuery 如何转换数据,而在 Dataform 中,您可以编写声明式语句,让 Dataform 确定实现该状态所需的转换。

在 Dataform 中,您可以开发、测试数据转换的 SQL 工作流并进行版本控制,从数据源声明到输出表、视图或具体化视图。您可以使用 Dataform 核心或纯 JavaScript 开发 SQL 工作流。 Dataform 核心是一种开源元语言,使用 SQLX 和 JavaScript 扩展 SQL。您可以使用 Dataform Core 管理依赖项,设置自动化数据质量测试,以及在代码中记录表或列说明。

Dataform 将您的 SQL 工作流代码存储在仓库中,并使用 Git 跟踪文件更改。借助 Dataform 中的开发工作区,您可以处理仓库的内容,而不会影响同一仓库中其他人员的工作。您可以将 Dataform 仓库连接到第三方 Git 提供商,包括 Azure DevOps Services、Bitbucket、GitHub 和 GitLab。

您可以使用 Dataform 版本配置和工作流配置运行或安排 SQL 工作流。 或者,您也可以使用 Cloud Composer 或 Workflows 和 Cloud Scheduler 来安排执行。在执行期间,Dataform 会根据 SQL 工作流中的对象依赖项在 BigQuery 中执行 SQL 查询。执行后,您可以使用定义的表和视图在 BigQuery 中进行分析。

如需详细了解如何在 Dataform 中创建数据转换 SQL 工作流,请参阅 Dataform 概览Dataform 功能

使用 BigQuery 流水线转换数据

BigQuery 流水线由 Dataform 提供支持,可让您在提取、加载和转换 (ELT) 或提取、转换和加载 (ETL) 流程中创建和管理数据转换。

您可以在 BigQuery Studio 中以直观的方式创建和管理 BigQuery 数据流。

如需详细了解如何创建 BigQuery 流水线,请参阅创建流水线

在 BigQuery 中准备数据

为了减少数据准备工作量,BigQuery 允许您使用 Gemini 生成的转换建议来清理数据。BigQuery 中的数据准备功能可提供以下帮助:

  • 应用转换和数据质量规则
  • 标准化和丰富数据
  • 自动执行架构映射

您可以在数据预览中验证结果,然后再对所有数据执行更改。

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

后续步骤