本文档可帮助您了解 Dataform 中工作流的架构和执行。
您可以使用 Dataform 开发、测试和版本控制工作流,这些工作流可以在 BigQuery 中运行,以转换数据用于分析。Dataform 工作流为 BigQuery 流水线、数据准备、笔记本和已保存的查询提供支持。
您可以使用 Dataform 核心(使用 SQLX 文件和可选的 JavaScript 文件)或 JavaScript开发工作流。
工作流可以包含以下对象:
- 数据源声明
- BigQuery 数据源的声明,让您可以在 Dataform 表定义和 SQL 操作中引用这些数据源。
- 表
- 您在 Dataform 中基于声明的数据源或工作流中的其他表创建的表。Dataform 支持以下表类型:表、增量表、视图和具体化视图。
- 断言
- 可用于验证表数据的数据质量测试查询。 Dataform 每次更新工作流时都会运行断言,如果任何断言失败,它都会向您发出提醒。
- 自定义 SQL 操作
- Dataform 在 BigQuery 中按原样运行的 SQL 语句,无需修改。
- 包含
- 包含变量和函数定义的 JavaScript 文件,您可以在整个工作流中重复使用这些变量和函数。
使用数据工程智能体进行开发
数据工程智能体可帮助您构建和维护 SQL 工作流,方法是根据自然语言提示生成代码和配置。除了 SQL 逻辑之外,该智能体还会主动使用 知识目录元数据 (预览版) 填充表配置,例如字段说明、表概览以及系统和 类型信息等通用方面。这可确保您的数据资产从创建之初就可被发现。
如需了解详情,请参阅 使用数据工程智能体构建和修改数据流水线。
工作流的可视化
您可以查看以有向无环图 (DAG) 形式可视化的工作流。DAG 显示了工作区中定义的工作流的所有对象以及它们之间的关系。您可以在 DAG 中放大和缩小,并使用拖放导航。如果工作流中存在编译错误,Dataform 会显示错误消息,而不是 DAG。
如需查看工作流的 DAG,请在工作区中点击已编译的图表 。
工作流的执行
您必须将自定义服务帐号与 Dataform 代码库相关联,才能执行工作流。所有其他代码库操作仍由默认的 Dataform 服务代理执行。
在开发工作区中,您可以 手动触发整个 工作流、所选操作或所选标记的运行。
您可以使用 Dataform 版本配置 和 工作流配置来安排运行。 首先,创建一个版本配置以创建代码库的编译结果。然后,创建一个工作流配置,选择一个版本配置,选择要运行的工作流操作,并设置运行时间表。
或者,您也可以使用 Managed Service for Apache Airflow或 Workflows 和 Cloud Scheduler来安排运行。
在执行期间,Dataform 会在 BigQuery 中运行 SQL 查询,并遵循工作流中的对象依赖项顺序。 执行后,您可以在 BigQuery 中将定义的表和视图用于所有分析目的。
执行配置选项
如需运行工作流操作的特定组,您可以将 Dataform 执行标记 添加到所选文件。然后,在手动触发运行时,您可以仅运行带有选定标记的文件。
默认情况下,Dataform 会使用 workflow_settings.yaml 文件中定义的执行设置来运行工作流。
借助 工作区编译替换, 您可以将工作区转换为隔离的 执行环境。这意味着,当您在工作区中手动触发执行时,Dataform 会在 BigQuery 中的隔离位置运行输出。
如需使用编译 替换创建和运行单个编译结果,您可以使用 Dataform API 传递请求 。
借助 版本配置, 您可以为整个代码库配置编译替换,还可以配置使用应用设置创建编译结果的频率。
如需详细了解在 Dataform 中配置编译和代码生命周期的方法,请参阅 Dataform 中的代码生命周期简介。
后续步骤
- 如需了解如何声明数据源,请参阅 声明数据源。
- 如需了解如何声明依赖项以定义工作流中对象之间的关系 ,请参阅设置依赖项。
- 如需了解如何定义自定义 SQL 操作,请参阅 创建操作。
- 如需了解如何使用包含在整个工作流中重复使用变量和函数,请参阅 使用包含在单个代码库中重复使用代码。