本文档介绍了如何在表定义文件中配置其他表设置。使用 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 项目OVERRIDDEN_NAME
:表的名称。 与 SQLX 表定义文件名不同
可选:点击格式。
使用已替换的表名称引用表
- 如需使用被替换的表名称引用表,请在
ref
函数中执行以下操作: 输入在name: ""
中设置的被替换表名称。
以下代码示例引用了一个表,其名称被替换为
overridden_name
:
SELECT * FROM ${ref("overridden_name")}
定义要在创建表之前执行的 SQL 语句
您可以将 Dataform 配置为执行一个或多个 SQL 语句
然后再在 BigQuery 中创建所选表。要执行 SQL 命令,
语句之前,请将
语句添加到表定义 SQLX 文件中的 pre_operations
代码块。
为了创建一个自定义 SQL 语句,在 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 配置为执行一个或多个 SQL 语句
在 BigQuery 中创建选定的表后。执行 SQL 语句
在 Dataform 创建选定的表后,将您的语句添加到
表定义 SQLX 文件中的 post_operations
代码块。您可以添加
多个 SQL 语句添加到 post_operations
代码块中。
为了创建在 Dataform 创建特定的 SQL 语句后执行的自定义 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 重复使用变量和函数。
如需了解如何手动触发执行,请参阅触发器执行。