配置其他操作

本文档介绍如何完成以下任务:

准备工作

  1. 在 Google Cloud 控制台中,前往 Dataform 页面。

    前往 Dataform

  2. 选择或创建代码库

  3. 选择或创建开发工作区

  4. 创建表

  5. 定义以下任意类型的 SQLX 文件:

所需角色

如需获得完成本文档中的任务所需的权限,请让您的管理员为您授予工作区的 Dataform Editor (roles/dataform.editor) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。

定义要在创建表之前运行的 SQL 语句

您可以将 Dataform 配置为在 BigQuery 中创建所选表之前运行一个或多个 SQL 语句。如需在 Dataform 创建所选表之前运行 SQL 语句,请将您的语句添加到表定义 SQLX 文件中的 pre_operations 代码块。

如需创建在 Dataform 创建特定表之前运行的自定义 SQL 语句,请按以下步骤操作:

  1. 前往您的开发工作区。
  2. 文件 窗格中,展开 definitions/
  3. 打开 SQLX 表定义文件。
  4. config 代码块之外,输入 pre_operations { ... }
  5. pre_operations { ... } 中,添加您的 SQL 语句。
  6. 可选:如需添加多个语句,请使用 --- 将它们分开。
  7. 可选:点击格式化

以下代码示例展示了一个 pre_operations 语句,该语句会创建一个可在 select 语句中使用的临时函数:

pre_operations {
  CREATE TEMP FUNCTION AddFourAndDivide(x INT64, y INT64)
    RETURNS FLOAT64
    AS ((x + 4) / y);
}

定义要在创建表之后运行的 SQL 语句

您可以将 Dataform 配置为在 BigQuery 中创建所选表之后运行一个或多个 SQL 语句。如需在 Dataform 创建所选表之后运行 SQL 语句,请将您的语句添加到表定义 SQLX 文件中的 post_operations 代码块。您可以向 post_operations 代码块添加多个 SQL 语句。

如需创建在 Dataform 创建特定表之后运行的自定义 SQL 语句,请按以下步骤操作:

  1. 前往您的开发工作区。
  2. 文件 窗格中,展开 definitions/
  3. 打开 SQLX 表定义文件。
  4. config 代码块之外,输入 post_operations { ... }
  5. post_operations { ... } 中,添加您的 SQL 语句。
  6. 可选:点击格式化

以下代码示例展示了向群组授予对所创建表的访问权限的 post_operations 语句:

  post_operations {
    GRANT `roles/bigquery.dataViewer`
    ON
    TABLE ${self()}
    TO "group:allusers@example.com", "user:otheruser@example.com"
  }

停用表创建

如需阻止 Dataform 在 BigQuery 中创建所选表,您可以在其 SQLX 表定义文件中停用该表。 Dataform 会将已停用的表保留在依赖关系图中,但不会编译和创建该表。例如,如果某个表失败,而您不希望在修复问题时整个工作流都失败,则此功能非常有用。

如需停用表,请按以下步骤操作:

  1. 前往您的开发工作区。
  2. 文件 窗格中,展开 definitions/
  3. 选择 SQLX 表定义文件。
  4. 在文件的 config 代码块中,输入 disabled: true
  5. 可选:点击格式化

以下代码示例展示了一个已停用的表:

config {
  type: "table",
  disabled: true
}

select * from ${ref("source_data")}

添加执行标记

本部分介绍如何向 Dataform SQLX 文件添加标记,以 对工作流进行分类。

如需将工作流的组件整理到集合中,您可以向以下类型的 SQLX 文件添加自定义标记:

  • table
  • view
  • incremental
  • assertion
  • operations

在工作流运行期间,您只能 运行带有选定标记的文件

借助 Managed Service for Apache AirflowWorkflows 以及 Cloud Scheduler, 您可以创建一个时间表,以特定时间间隔运行带有 选定标记的 Dataform 工作流。

添加标记

您可以向 SQLX 文件添加多个标记。

如需向 SQLX 文件添加标记,请按以下步骤操作:

  1. 前往您的开发工作区。
  2. 文件 窗格中,展开 definitions/
  3. 选择 SQLX 文件。
  4. config 代码块中,按以下格式添加标记:

    tags: ["CUSTOM_TAG"]
    

    CUSTOM_TAG 替换为您的标记。

  5. 可选:如需添加多个标记,请使用英文逗号 (,) 将它们分开。

  6. 可选:点击格式化

以下代码示例展示了带有 dailyhourly 标记的 user_counts 视图:

config {
  type: "view",
  name: "user_counts",
  tags: ["daily", "hourly"]
}

后续步骤