Dataform 功能概览

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

仓库

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

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

  • 配置文件

    通过 Config JSON 或 SQLX 文件,您可以配置 SQL 工作流。 它们包含用于创建新表和视图的常规配置、执行时间表或架构。

  • 定义

    定义是 SQLX 和 JavaScript 文件,用于定义要在 BigQuery 中运行的新表、视图和其他 SQL 操作

  • 包含

    Includes 是 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 代码库

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

工作流开发

在 Dataform 中,您可以更改开发工作区内的文件和目录。开发工作区是 Git 代码库内容的虚拟可修改副本。Dataform 会在各会话之间保留开发工作区中的文件状态。

在开发工作区中,您可以通过将 Dataform core 与 SQLX 和 JavaScript 搭配使用,或仅使用 JavaScript开发 SQL 工作流操作。 您可以自动设置 Dataform 核心代码或 JavaScript 代码的格式。

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

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

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

Dataform 可实时编译工作区中的 SQL 工作流代码。在您的工作区中,您可以查看已编译的查询以及每个文件中的操作详细信息。您还可以在修改后的文件或代码库中查看编译状态和错误。

如需在将已编译的 SQL 查询执行到 BigQuery 之前对其进行测试,您可以在 Dataform 工作区中运行查询的预览

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

工作流编译

Dataform 使用dataform.json 中配置的默认编译设置,将工作区中的 SQL 工作流代码实时编译为 SQL,从而创建工作区的编译结果。

您可以替换编译设置,以自定义 Dataform 如何将 SQL 工作流编译为编译结果。

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

借助版本配置,您可以配置编译设置模板,以创建 Dataform 代码库的编译结果。在版本配置中,您可以替换 Dataform 将在其中执行编译结果的 Google Cloud 项目,为所有已编译表的名称添加前缀,为默认架构添加后缀,并添加编译变量。您还可以设置创建编译结果的频率。如需安排执行所选版本配置中创建的编译结果,您可以创建工作流配置

执行工作流

在工作流执行期间,Dataform 会执行 SQL 工作流的编译结果,以在 BigQuery 中创建或更新资源。

如需在 BigQuery 中创建或刷新 SQL 工作流中定义的表和视图,您可以在开发工作区中手动启动工作流执行作业或安排执行时间。

您可以通过以下方式在 BigQuery 中安排 Dataform 执行:

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

后续步骤