本文档介绍了 Google Cloud 中的 Dataform 功能。
Dataform 是一种无服务器服务,可供数据分析师开发表、增量表或视图并将其部署到 BigQuery。Dataform 为 SQL 工作流开发、与 GitHub、GitLab 和 Bitbucket Cloud 连接、持续集成、持续部署和工作流执行提供了一个 Web 环境。
Dataform 目前不支持客户管理的加密密钥 (CMEK) 和 VPC Service Controls。如需使用 Dataform,您需要从您的 VPC Service Controls 边界中排除 BigQuery 资源。或者,您也可以使用 Dataform CLI 在本地开发 SQL 工作流。
代码库
每个 Dataform 项目都存储在一个代码库中。Dataform 代码库包含一系列 JSON 配置文件、SQLX 文件和 JavaScript 文件。
Dataform 代码库包含以下类型的文件:
配置文件
通过配置 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 或 Bitbucket Cloud 代码库。
用户可以在 Dataform 工作区内对其 SQL 工作流代码进行版本控制。在 Dataform 工作区中,您可以从代码库拉取更改,提交所有或所选更改,并将其推送到代码库的 Git 分支。
工作流开发
在 Dataform 中,您可以更改开发工作区内的文件和目录。开发工作区是 Git 代码库内容的虚拟可修改副本。Dataform 会在会话之间保留开发工作区中的文件状态。
在开发工作区中,您可以通过将 Dataform core 与 SQLX 和 JavaScript 结合使用,或仅使用 JavaScript 来开发 SQL 工作流操作。
Dataform SQL 工作流的每个元素(如表或断言)对应于 Dataform 在 BigQuery 中执行的操作。例如,表定义文件是在 BigQuery 中创建或更新表的操作。
在 Dataform 工作区中,您可以开发以下 SQL 工作流操作:
- 源数据声明
- 表和视图
- 增量表
- 表分区和集群
- 操作之间的依赖关系
- 表格文档
- 自定义 SQL 操作
- BigQuery 标签
- BigQuery 政策标记
- Dataform 标记
- 数据质量测试,称为“断言”
您可以通过以下方式使用 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 执行:
- 创建工作流配置,以安排在版本配置中创建的编译结果的执行
- 使用 Cloud Composer 安排执行
- 使用 Workflows 和 Cloud Scheduler 安排执行
如需调试错误,您可以通过以下方式监控执行情况:
后续步骤
- 如需详细了解 Dataform Core,请参阅 Dataform core 概览。
- 如需详细了解 Dataform 代码库,请参阅代码库简介。
- 如需详细了解 Dataform 工作区,请参阅工作区开发简介。
- 如需详细了解如何在 Dataform 中开发 SQL 工作流,请参阅 SQL 工作流简介。
- 如需详细了解如何在 Dataform 中使用 JavaScript,请参阅 Dataform 中的 JavaScript 简介。
- 如需详细了解 Dataform 中的代码生命周期,请参阅 Dataform 中的代码生命周期简介。