本文档介绍了 Dataform 中的代码生命周期以及 在 Dataform 中配置编译和执行。
Dataform 中的代码生命周期简介
Dataform 代码生命周期包含以下阶段:
- 开发
- 您开发 SQL 工作流 Dataform 工作区。
- 编译
Dataform 会将工作区中的 SQL 工作流代码编译为 SQL 从而创建可在 BigQuery 中执行的工作区的编译结果。 Dataform 会使用 在工作流程设置文件中指定的 以创建编译结果。
Dataform 编译是封闭的,以确保编译一致性 这意味着相同的代码编译成相同的 SQL 编译结果 。Dataform 在沙盒中编译代码 环境无法连接到互联网。没有其他操作,例如拨打电话 外部 API 等外部 API,在编译期间可用。
- 执行
在工作流调用中, Dataform 在 BigQuery 中执行工作区编译结果。
如需根据需求定制 Dataform 代码生命周期,您可以配置 来影响 Dataform 的位置和方式 执行 SQL 工作流。然后,您可以手动触发或安排执行 影响 Dataform 执行整个 SQL 工作流或其 所选元素。
配置 Dataform 编译的方法
默认情况下,Dataform 会使用 工作流设置文件 以创建编译结果。你可以覆盖默认设置 使用编译替换来创建自定义编译结果。然后,您可以 手动触发自定义编译结果的执行; 或安排执行。
Dataform 提供以下配置选项 编译结果:
- 工作区编译替换
- 您可以配置应用于所有工作区的编译替换, 存储库您可以使用工作区编译替换功能来创建隔离的 开发环境。
- 版本配置
- 您可以通过创建版本配置来配置用于创建 Dataform 代码库的编译结果。然后,您可以 用于安排创建的编译结果执行的工作流配置 选择版本配置。
- Dataform API 编译替换
- 您可以在终端中传递 Dataform API 请求,以创建和执行 包含编译替换的单个编译结果。
配置工作区编译替换
使用工作区编译替换时, 您可以为 Dataform 中的所有工作区创建编译替换 存储库您可以创建一个工作区编译替换配置 每个代码库
当您在工作区中手动触发执行时, 包含工作区编译替换项的仓库,Dataform 适用 将这些替换项应用于工作区的编译结果。
您可以配置以下工作区编译替换:
- Google Cloud 项目,Dataform 在其中执行 工作区
- 表前缀
- 架构后缀
您可以使用工作区编译替换来创建隔离开发
通过在 BigQuery 中隔离工作区编译结果来实现环境
动态编译替换。动态表前缀
和架构后缀编译替换项包含 ${workspaceName}
变量。
当您在工作区中触发执行时,Dataform 会将
将 ${workspaceName}
变量替换为当前工作区的名称,正在创建
编译替换是工作区独有的。
请注意,您无法安排编译结果的执行 使用工作区编译替换创建。
创建版本配置
使用发布配置时, 您可以配置设置模板 生成代码库的编译结果
在版本配置中,您可以配置 工作流设置、编译变量 以及创建 编译整个代码库的结果
在版本配置中,您可以配置以下内容 编译替换:
- Google Cloud 项目
- 表前缀
- 架构后缀
- 编译变量的值
您可以在 Dataform 中创建多个版本配置 分别用于开发生命周期的每个阶段、 代码库编译结果。
然后,您可以创建工作流配置来安排执行 所选版本配置中创建的编译结果列表。
您也可以手动在选定版本配置中触发编译结果的执行。
使用 Dataform API 编译替换项配置单个编译结果
通过在终端中传递 Dataform API 请求,您可以配置编译 针对单个编译结果进行替换。
在 compilationResults.create
请求中,您可以创建 Dataform 的单个编译结果
工作区或指定的 Git 可组合项。
在CodeCompilationConfig
compilationResults.create
请求,您可以配置编译替换
编译请求
您可以配置以下 Dataform API 编译替换:
- Google Cloud 项目
- 表前缀
- 架构后缀
- 编译变量的值
请注意,Dataform API 编译替换适用于单个 只执行一次。您无法使用它们来安排 Dataform 执行情况。
您可以在
workflowInvocations.create
请求。
配置 Dataform 执行方式
Dataform 提供了以下用于配置执行的选项:
- 在工作区中手动执行
- 您可以手动触发 SQL 工作流的即时执行 在 Dataform 工作区中(在任何时间表之外)。您可以使用 SQL 工作流中选定的操作。
- 工作流配置
- 您可以安排执行在选定项目中创建的编译结果 版本配置。您可以选择要执行的 SQL 工作流操作, 设置执行频率和时区。
在工作区中触发即时执行
在 Dataform 工作区中,您可以立即手动执行 您的工作区中的 SQL 工作流,任何时间表都之外。
您可以在 工作区:
如果您的代码库包含工作区编译替换,您可以查看 编译替换 Dataform 将应用于工作区 编译结果。
创建工作流配置
借助工作流配置, 您可以通过所选的 版本配置。 您可以创建多个工作流配置 创建 Deployment 清单
在工作流配置中,您可以配置以下执行设置:
- 已应用的编译版本配置
- 选择要执行的 SQL 工作流操作
- 执行的时间表和时区
您可以选择要执行的以下 SQL 工作流操作:
- 所有操作
- 所选操作
- 包含所选标记的操作
然后,在按计划执行工作流配置期间 Dataform 会部署您在应用的 将编译结果上传到 BigQuery。
借助 Dataform 发布配置和工作流配置 在 Dataform 中配置编译并安排执行, 而无需依赖附加服务。
生命周期资源的过期
Dataform 存储 特定时间段内的数据
工作流调用的过期
工作流调用 它们会在 90 天后过期,您也可以手动删除它们。
在工作流配置中, 您可以查看最近的工作流调用列表 由配置创建的项。当工作流创建工作流调用时 配置过期,Dataform 会移除该工作流调用 从最近调用的列表中进行选择。
编译结果的过期
编译结果的过期 取决于创建方式:在开发工作区中, 发布配置中,或者通过工作流调用进行。
在 Dataform 工作区中开发 SQL 工作流时, Dataform 会实时将代码编译为编译结果 提供查询验证。以这种方式创建的编译结果会过期 。
在版本配置中,最新编译结果将变为 编译结果。新的编译结果会替换当前的 编译结果。 Dataform 会保留实时编译结果,直到将其替换为 生成新的编译结果。替换的编译结果会过期 最多 24 小时内。
Dataform 会从 版本配置的 Details 页面上显示过往编译结果。
Dataform 会保留工作流调用创建的编译结果 工作流调用的整个生命周期内,工作流发生后最多 24 小时 调用过期或被删除。
后续步骤
- 如需了解 Dataform 中代码生命周期的最佳实践,请参阅 管理代码生命周期。
- 如需了解如何配置 Dataform 工作区编译替换, 请参阅创建工作区编译替换。
- 了解如何使用 Dataform API 编译替换,请参阅 使用 Dataform API 配置编译替换。
- 如需了解如何创建 Dataform 版本配置,请参阅 创建版本配置。
- 如需了解如何在工作区中手动触发执行,请参阅 触发器执行。
- 如需了解如何创建工作流配置,请参阅 使用工作流配置安排执行。