配置其他表设置

本文档介绍了如何在表定义文件中配置其他表设置。使用 Dataform 核心,您可以定义 pre_operationspost_operations,以便在创建表之前或之后执行 SQL 语句。您还可以替换表设置(例如 databaseschema)并停用表创建功能。

准备工作

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

    转到 Dataform

  2. 选择或创建代码库

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

  4. 创建表

所需的角色

如需获取配置其他表设置所需的权限, 请让管理员向您授予 Dataform Editor (roles/dataform.editor) 工作区的 IAM 角色。 如需详细了解如何授予角色,请参阅管理访问权限

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

替换表设置

您可以替换所选表的架构、数据库和名称。

默认情况下,表遵循您在 dataform.json。表的名称与表的名称相同 定义 SQLX 文件。

如需替换所选表的架构和名称,请按以下步骤操作:

  1. 转到开发工作区。

  2. Files 窗格中,展开 definitions/

  3. 打开 SQLX 表定义文件。

  4. config 代码块中,输入以下代码段:

     {
       schema: "OVERRIDDEN_SCHEMA",
       database: "OVERRIDDEN_DATABASE",
       name: "OVERRIDDEN_NAME"
     }
    

    替换以下内容:

    • OVERRIDDEN_SCHEMA:BigQuery 要在其中创建表的数据集

    • OVERRIDDEN_DATABASE: 要在其中创建表的 BigQuery 项目

    • OVERRIDDEN_NAME:表的名称。 与 SQLX 表定义文件名不同

  5. 可选:点击格式

使用已替换的表名称引用表

  • 如需使用被替换的表名称引用表,请在 ref 函数中执行以下操作: 输入在 name: "" 中设置的被替换表名称。

以下代码示例引用了一个表,其名称被替换为 overridden_name

  SELECT * FROM ${ref("overridden_name")}

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

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

为了创建一个自定义 SQL 语句,在 Dataform 创建特定的 SQL 语句之前 表格,请按以下步骤操作:

  1. 转到开发工作区。

  2. Files 窗格中,展开 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 配置为执行一个或多个 SQL 语句 在 BigQuery 中创建选定的表后。执行 SQL 语句 在 Dataform 创建选定的表后,将您的语句添加到 表定义 SQLX 文件中的 post_operations 代码块。您可以添加 多个 SQL 语句添加到 post_operations 代码块中。

为了创建在 Dataform 创建特定的 SQL 语句后执行的自定义 SQL 语句, 表格,请按以下步骤操作:

  1. 转到开发工作区。

  2. Files 窗格中,展开 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. Files 窗格中,展开 definitions/

  3. 选择 SQLX 表定义文件。

  4. 在该文件的 config 代码块中,输入 disabled: true

  5. 可选:点击格式

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

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

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

后续步骤