创建操作

本文档介绍了如何在专用 SQLX 文件中定义自定义 SQL 操作。

Dataform 可以运行不适合发布表或写入断言的 Dataform 模型的自定义 SQL 操作。您可以定义自定义 SQL 命令,供 Dataform 在 BigQuery 中运行。

准备工作

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

    前往 Dataform 页面

  2. 选择或创建代码库

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

所需的角色

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

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

创建自定义操作定义文件

将自定义操作定义 SQLX 文件存储在 definitions/ 目录中。如需在 definitions/ 目录中创建新的 SQLX 文件,请按以下步骤操作:

  1. 前往您的开发工作区。
  2. 文件窗格中,点击 definitions/ 旁边的 更多菜单。
  3. 点击创建文件
  4. 添加文件路径字段中,输入文件名称,然后在 definitions/ 后面输入 .sqlx。例如 definitions/sample-operation.sqlx

    文件名只能包含数字、字母、连字符和下划线。

  5. 点击创建文件

定义自定义 SQL 操作

您可以在 type: operations 的 SQLX 文件中定义自定义 SQL 操作。您可以在 operations 文件中编写任何 BigQuery SQL 语句。Dataform 会在 BigQuery 中运行您的自定义 SQL 操作,而不会进行修改。

您可以在一个 SQLX 文件中定义多个自定义 SQL 操作。 BigQuery 会在同一上下文中运行文件中的所有操作,并通过使用半角分号 (;) 连接所有操作来创建运行 SQL。

如果将 开源 Dataform 框架与 BigQuery 以外的数据仓库搭配使用,您需要使用 --- 分隔各个操作,以定义多个自定义 SQL 操作。

如需在专用 SQLX 文件中定义自定义 SQL 操作,请按以下步骤操作:

  1. 在开发工作区中,选择用于自定义操作定义的 SQLX 文件。
  2. 在文件中输入以下代码段:

    config { type: "operations" }
    
  3. config 块之外,编写 SQL 操作。

  4. 可选:点击格式

以下代码示例展示了在 operations 文件中定义的多个自定义 SQL 操作:

config { type: "operations" }

DELETE FROM dataset.table WHERE country = 'GB';

DELETE FROM dataset.table WHERE country = 'FR';

以下代码示例展示了手动创建视图的自定义 SQL 操作:

config { type: "operations" }
CREATE OR REPLACE VIEW dataset.table AS (SELECT 1 AS TEST)

创建可引用的输出表

您可以在自定义 SQL 操作中手动创建一个表,然后在其他脚本中引用该表。如需创建可供其他脚本使用的表,您需要声明相应操作具有输出。

为了使输出表的名称与 operations 文件的名称一致,您可以在 CREATE 操作中使用 self 函数。

如需在自定义操作中创建表格并使其可供其他脚本使用,请按以下步骤操作:

  1. 在开发工作区中,选择用于自定义操作定义的 SQLX 文件。
  2. 在 SQLX 文件中,输入以下代码段:

    config {