本文档介绍了如何在表定义文件中配置其他表设置。使用 Dataform 核心,您可以定义 pre_operations
和 post_operations
,以便在创建表之前或之后执行 SQL 语句。您还可以替换表设置(例如 database
或 schema
)并停用表创建功能。
准备工作
所需的角色
如需获取配置其他表设置所需的权限,请让管理员向您授予工作区的 Dataform Editor (roles/dataform.editor
) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限。
替换表设置
您可以替换所选表的架构、数据库和名称。
默认情况下,表遵循您在 dataform.json
中设置的架构和数据库配置。表的名称与表定义 SQLX 文件的名称相同。
如需替换所选表的架构和名称,请按以下步骤操作:
转到开发工作区。
在 Files 窗格中,展开
definitions/
。打开 SQLX 表定义文件。
在
config
代码块中,输入以下代码段:{ schema: "OVERRIDDEN_SCHEMA", database: "OVERRIDDEN_DATABASE", name: "OVERRIDDEN_NAME" }
请替换以下内容:
OVERRIDDEN_SCHEMA
:要在其中创建表的 BigQuery 数据集OVERRIDDEN_DATABASE
:您要在其中创建表的 BigQuery 项目的 IDOVERRIDDEN_NAME
:表的名称,与 SQLX 表定义文件名不同
可选:点击格式。
使用已替换的表名称引用表
- 如需引用使用已替换表名称的表,请在
ref
函数中输入在name: ""
中设置的被替换表名称。
以下代码示例引用了一个名称已替换为 overridden_name
的表:
SELECT * FROM ${ref("overridden_name")}
定义要在创建表之前执行的 SQL 语句
您可以将 Dataform 配置为在 BigQuery 中创建所选表之前执行一个或多个 SQL 语句。如需在 Dataform 创建所选表之前执行 SQL 语句,请将语句添加到表定义 SQLX 文件的 pre_operations
代码块中。
如需创建在 Dataform 创建特定表之前执行的自定义 SQL 语句,请按以下步骤操作:
转到开发工作区。
在 Files 窗格中,展开
definitions/
。打开 SQLX 表定义文件。
在
config
代码块之外,输入pre_operations { ... }
。在
pre_operations { ... }
中,添加您的 SQL 语句。可选:如需添加多个语句,请使用
---
将其分隔。可选:点击格式。
以下代码示例展示了一个 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 语句,请按以下步骤操作:
转到开发工作区。
在 Files 窗格中,展开
definitions/
。打开 SQLX 表定义文件。
在
config
代码块之外,输入post_operations { ... }
。在
post_operations { ... }
中,添加您的 SQL 语句。可选:点击格式。
以下代码示例展示了用于向组授予对所创建表的访问权限的 post_operations
语句:
post_operations {
GRANT `roles/bigquery.dataViewer`
ON
TABLE ${self()}
TO "group:allusers@example.com", "user:otheruser@example.com"
}
停用表创建功能
如需阻止 Dataform 在 BigQuery 中创建选定的表,您可以在其 SQLX 表定义文件中停用该表。Dataform 会在依赖关系图中保留已停用的表,但不会编译和创建该表。这在某些情况下会很有用,例如,如果表发生故障,并且您不希望整个工作流在解决问题时失败。
如需停用表,请按以下步骤操作:
转到开发工作区。
在 Files 窗格中,展开
definitions/
。选择 SQLX 表定义文件。
在该文件的
config
代码块中,输入disabled: true
。可选:点击格式。
以下代码示例展示了一个已停用的表:
config {
type: "table",
disabled: true
}
select * from ${ref("source_data")}
后续步骤
如需了解如何在
dataform.json
中配置 Dataform 设置,请参阅配置 Dataform 设置。如需了解如何使用断言测试表数据,请参阅使用断言测试表。
如需了解如何通过 include 重复使用代码,请参阅通过 include 重复使用变量和函数。
如需了解如何手动触发执行,请参阅触发器执行。