本文介绍 Dataform 概念和流程。
Dataform 是一项服务,供数据分析师用于开发、测试、版本控制和安排复杂 SQL 工作流,以在 BigQuery 中进行数据转换。
借助 Dataform,您可以在数据集成的提取、加载和转换 (ELT) 流程中管理数据转换。从源系统中提取原始数据并将其加载到 BigQuery 中后,Dataform 可帮助您将其转换为明确定义、测试和记录的一系列数据表格。
借助 Dataform,您可以执行以下数据转换操作:
- 开发和执行用于数据转换的 SQL 工作流。
- 通过 Git 与团队成员协作开发 SQL 工作流。
- 管理大量表及其依赖项。
- 声明源数据和管理表依赖项。
- 查看 SQL 工作流的依赖关系树的可视化图表。
- 在一个中央代码库中使用 SQL 代码管理数据。
- 通过 JavaScript 重复使用代码。
- 使用源表和输出表的质量测试来验证数据正确性。
- 版本控制 SQL 代码。
- 在 SQL 代码内记录数据表。
Dataform 目前不支持客户管理的加密密钥 (CMEK) 和 VPC Service Controls。如需使用 Dataform,您需要从您的 VPC Service Controls 边界中排除 BigQuery 资源。或者,您也可以使用 Dataform CLI 在本地开发 SQL 工作流。
Dataform 中的数据转换流程
Dataform 的数据转换工作流如下:
- 借助 Dataform,您可以创建代码库来管理代码。
- 借助 Dataform,您可以创建用于开发的工作区。
- 借助 Dataform,您可以在开发工作区中开发 SQL 工作流。
- Dataform 将 Dataform 核心编译为 SQL。
- Dataform 会执行依赖项树。
借助 Dataform,您可以创建代码库来管理代码
在 Dataform 代码库中,您可以使用 Dataform core(SQL 扩展程序)来编写在其中定义工作流的 SQLX 文件。Dataform 代码库支持版本控制。您可以将 Dataform 代码库关联到第三方 Git 提供商。
借助 Dataform,您可以为开发创建工作区
您可以在 Dataform 代码库中创建开发工作区,用于 Dataform 核心开发。在开发工作区中,您可以通过 Git 对代码库进行更改,并进行编译和测试,并将其推送到主代码库。
借助 Dataform,您可以在开发工作区中开发 Dataform 核心
在开发工作区中,您可以定义并记录表、表的依赖项和转换逻辑,以构建 SQL 工作流。您也可以使用 JavaScript 配置操作。
Dataform 编译 Dataform Core
在编译期间,Dataform 会执行以下任务:
- 将 Dataform 核心编译到标准 SQL 的 SQL 工作流中。
- 将样板 SQL 语句(例如
CREATE TABLE
或INSERT
)添加到与查询配置一致的代码中。 - 将 JavaScript 转译(从源到源)转换为 SQL。
- 解析依赖项并检查是否存在错误,包括依赖项缺失或循环。
- 构建要在 BigQuery 中运行的所有操作的依赖关系树。
如需进行实时调试,您可以在开发工作区的交互式图表中检查项目的已编译 SQL 工作流。
Dataform 无需访问互联网即可在 V8 沙盒环境中编译您的代码。编译期间没有可用的其他操作,如调用外部 API。
Dataform 执行依赖项树
在 BigQuery 中,Dataform 可执行以下任务:
- 按照依赖关系树的顺序执行 SQL 命令。
- 对表和视图执行断言查询以检查数据正确性。
- 执行您定义的其他 SQL 操作。
执行后,您可以将表和视图用于所有分析目的。
您可以查看日志,了解创建了哪些表、断言是通过还是失败、每项操作完成所用的时间,以及其他信息。您还可以查看在 BigQuery 中运行的确切 SQL 代码。
Dataform 建模框架
Dataform 提供了一个开源数据建模框架,由 Dataform core 和 Dataform CLI 组成,可供您在 Google Cloud 外部使用。
后续步骤
- 如需详细了解 Dataform 功能,请参阅 Dataform 功能概览。
- 如需详细了解 Dataform Core,请参阅 Dataform core 概览。
- 如需详细了解 Dataform CLI,请参阅使用 Dataform CLI。