Dataform 概览

本文档介绍 Dataform 概念和流程。

Dataform 是一项服务,供数据分析师用于开发、测试、控制版本控制,以及安排复杂的 SQL 工作流以在 BigQuery 中进行数据转换。

借助 Dataform,您可以在数据集成的提取、加载和转换 (ELT) 流程中管理数据转换。从源系统中提取原始数据并将其加载到 BigQuery 中后,Dataform 可帮助您将其转换为定义明确、经过测试并记录在案的数据表格套件。

通过 Dataform,您可以执行以下数据转换操作:

  • 开发和执行用于数据转换的 SQL 工作流。
  • 与团队成员通过 Git 开发 SQL 工作流。
  • 管理大量表及其依赖项。
  • 声明源数据和管理表依赖项。
  • 以可视化方式查看 SQL 工作流的依赖关系树。
  • 在中央存储库中使用 SQL 代码管理数据。
  • 通过 JavaScript 重复使用代码。
  • 通过对源表和输出表进行质量测试来测试数据正确性。
  • 版本控制 SQL 代码。
  • 在 SQL 代码中记录数据表。

Dataform 中的数据转换流程

Dataform 的数据转换工作流如下:

  1. 您可以借助 Dataform 创建代码库来管理代码。
  2. 您可以借助 Dataform 创建用于开发工作的工作区。
  3. 借助 Dataform,您可以在开发工作区中开发 SQL 工作流。
  4. Dataform 将 Dataform 核心编译为 SQL。
  5. Dataform 执行依赖项树

借助 Dataform,您可以创建代码库来管理代码

在 Dataform 代码库中,使用 SQL 的扩展 Dataform core 来编写 SQLX 文件,以在其中定义工作流。Dataform 代码库支持版本控制。您可以将 Dataform 代码库关联到第三方 Git 提供商

借助 Dataform,您可以针对开发创建工作区

您可以在 Dataform 代码库中创建开发工作区,以用于 Dataform 核心开发。在开发工作区中,您可以通过 Git 对代码库进行更改,并进行编译和测试,并将其推送到主代码库。

借助 Dataform,您可以在开发工作区中开发 Dataform 核心

在开发工作区中,您可以定义并记录表、它们的依赖项和转换逻辑,以构建 SQL 工作流。您还可以使用 JavaScript 配置操作

Dataform 编译 Dataform 核心

在编译期间,Dataform 会执行以下任务:

  • 将 Dataform 核心编译为标准 SQL 的 SQL 工作流。
  • 将样板 SQL 语句(例如 CREATE TABLEINSERT)添加到内嵌于查询配置的代码。
  • 将 JavaScript 转译(从源代码编译到源代码)为 SQL。
  • 解析依赖项并检查是否存在错误,包括依赖项缺失或循环依赖项。
  • 构建要在 BigQuery 中运行的所有操作的依赖关系树。

Dataform 编译是封闭的,可确保编译一致性,这意味着同一代码每次都会编译为相同的 SQL 编译结果。Dataform 会在不连接到互联网的沙盒环境中编译您的代码。编译期间无法使用其他操作,例如调用外部 API。

如需实时调试,您可以在开发工作区的交互式图表中检查项目的已编译 SQL 工作流。

Dataform 执行依赖项树

在 BigQuery 中,Dataform 执行以下任务:

  • 按照依赖关系树的顺序执行 SQL 命令。
  • 对表和视图执行断言查询,以检查数据正确性。
  • 执行您定义的其他 SQL 操作。

执行完毕后,您可以将表和视图用于所有分析目的。

您可以查看日志,了解创建了哪些表、断言通过还是失败、每项操作完成所用的时间,以及其他信息。您还可以查看在 BigQuery 中运行的确切 SQL 代码。

Dataform 建模框架

Dataform 提供了一个开源数据建模框架,由 Dataform coreDataform CLI 组成,可供您在 Google Cloud 之外使用。

后续步骤