Dataform 功能概览

Dataform 是一项无服务器服务,供数据分析师开发和 将表、增量表或视图部署到 BigQuery。 Dataform 为 SQL 工作流开发提供了一个 Web 环境, 与 GitHub、GitLab、Azure DevOps Services 和 Bitbucket 进行集成, 持续集成、持续部署和工作流执行。

代码库

每个 Dataform 项目都存储在 代码库。 Dataform 代码库包含一系列 JSON 配置文件, SQLX 文件和 JavaScript 文件。

Dataform 代码库包含以下类型的文件:

  • 配置文件

    您可以使用配置 JSON 或 SQLX 文件来配置 SQL 工作流。 它们包含以下各项的常规配置、执行时间表或架构: 创建新表和视图

  • 定义

    定义是用于定义新表、视图和 以及其他 SQL 操作 以便在 BigQuery 中运行

  • 包含

    包含是 JavaScript 文件,其中 您可以定义要在项目中使用的变量和函数。

每个 Dataform 代码库都与一个服务账号相关联。您可以 在创建代码库时选择服务账号 或者修改服务账号

默认情况下,Dataform 使用基于您的 项目编号,格式如下:

service-YOUR_PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com

版本控制

Dataform 使用 Git 版本控制系统来维护 对项目文件所做的每项更改,以及管理文件版本。

每个 Dataform 代码库都可以管理自己的 Git 代码库,也可以 连接到远程第三方 Git 代码库。您可以 将 Dataform 代码库连接到 GitHub、GitLab、Azure DevOps Services 或 Bitbucket 代码库

用户对其 SQL 工作流代码进行版本控制 Dataform 工作区中。在 Dataform 工作区中 您可以从代码库中拉取更改,提交所有或选定的更改, 并将其推送到代码库的 Git 分支

工作流开发

在 Dataform 中,您可以对 开发工作区。 开发工作区是一个可修改的虚拟副本 Git 代码库的内容Dataform 会 文件。

在开发工作区中,您可以开发 SQL 工作流操作Dataform Core 与 SQLX 和 JavaScript,或者 只使用 JavaScript。 您可以自动设置 Dataform 核心或 JavaScript 代码的格式。

Dataform SQL 工作流的每个元素(例如表或断言) 对应于 Dataform 在 BigQuery 中执行的操作。 例如,表定义文件是创建或更新 BigQuery 中的表。

在 Dataform 工作区中,您可以开发以下项目 SQL 工作流操作:

您可以使用 JavaScript 重复使用 Dataform SQL 工作流代码 方式:

Dataform 可实时编译工作区中的 SQL 工作流代码。 在您的工作区中,您可以查看已编译的查询和操作详情 。您也可以在以下位置查看编译状态和错误: 还是在代码库中

在执行编译的 SQL 查询之前,要测试该查询的输出, BigQuery,您可以 运行查询 Dataform 工作区中。

如需检查工作区中定义的整个 SQL 工作流,您可以执行以下操作: 查看交互式编译图表 显示了 SQL 工作流中所有已编译的操作及其之间的关系。

工作流编译

Dataform 使用默认编译设置 在工作流程设置文件中配置 来编译 SQL 工作流, 实时迁移到 SQL, 创建工作区的编译结果。

您可以替换编译设置以自定义 Dataform 的方式 会将您的 SQL 工作流编译为编译结果。

使用工作区编译替换时, 您可以为代码库中的所有工作区配置编译替换。 您可以设置动态工作区替换,以创建自定义的编译结果 将工作区转换为独立的开发环境。 您可以替换将执行 Dataform 的 Google Cloud 项目 工作区的内容,为所有已编译表的名称添加前缀, 并为默认架构添加后缀

通过发布配置,您可以 配置编译设置模板 Dataform 代码库的编译结果。特定版本中 配置,您可以覆盖 Google Cloud 项目, Dataform 将执行编译结果,在 所有已编译的表、为默认架构添加后缀 并添加编译变量。还可以设置 创建编译结果。调度编译结果的执行 所选版本配置中创建的 创建工作流配置

执行工作流

在工作流执行期间,Dataform 会执行 用于在 BigQuery 中创建或更新资产的 SQL 工作流。

要在 BigQuery,您可以 手动启动工作流执行作业 或安排执行。

您可以在 BigQuery 中安排 Dataform 执行, 方法:

如需调试错误,您可以通过以下方式监控执行情况:

后续步骤