Dataform 中的代码生命周期简介

本文档介绍了 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 小时 调用过期或被删除。

后续步骤