变量管理

最近更新时间:2026-04-17 15:06:28

我的收藏
用户可以在 SQL 作业中的库表管理使用变量。SQL 作业的临时表和元数据表都可以通过表变量替换对使用变量进行替换。
表变量语法:
${变量名称}
${变量名称:默认值}
${变量名称}:默认值
注意
变量名称分隔符用下划线 _ 。推荐使用${变量名称}这种语法。

新建变量

登录 流计算 Oceanus 控制台,选择进入目标工作空间,在作业管理中,创建 SQL 作业,可参考 创建 SQL 作业 ,切换到开发调试,在左侧的变量管理界面操作变量。


变量管理功能界面中,选择右上角的新建,在弹窗中填写变量信息,然后单击确定



数据表中引用全局变量

库表引用功能界面中,选择右上角的新建 > 数据表,在弹窗中选择 Catalog 和 Database,然后单击下一步,进入选择创建元表的方式,可使用模板、自定义、云资源。如果选择自定义或者云资源,则需输入相应的连接信息。在 WITH 参数中设置表变量并点击完成,表变量命名规则参考 库表管理



引用多个全局变量

注意:
引用多个变量,可以使用${变量名称}或${变量名称:默认值}样式进行拼接。


SQL 作业引用全局变量

在 SQL 作业中可以直接引用全局变量,单击表变量替换,右侧会显示操作菜单,单击引用全局变量,最后单击提交



系统变量

将以下变量替换为真实的 job_id 和 cluster_id
${SYSTEM_VARIABLE_JOB_SERIAL_ID}:xx
${SYSTEM_VARIABLE_CLUSTER_SERIAL_ID}:xx




全局 SQL 变量

注意
该功能当前为白名单开放,如需使用请 联系我们 开通。
全局 SQL 变量与表变量不同,表变量仅作用于数据表的 WITH 参数中,而全局 SQL 变量可以在 SQL 编辑器中的任意位置使用,包括 DDL 语句、DML 语句中的字段名、表名、参数值等。

变量语法

与表变量一致:
${变量名称}
${变量名称:默认值}
注意
变量名称分隔符用下划线 _ 。推荐使用${变量名称}这种语法。

在 SQL 中引用

在 SQL 编辑器中,直接使用 ${变量名称} 语法引用。变量会在作业保存/发布时被替换为实际值。
SET pipeline.operator-chaining = ${chaining_enabled};

CREATE TABLE source (
id INT,
name STRING
) WITH (
'connector' = 'datagen',
'rows-per-second' = '${rows_per_second}'
);

INSERT INTO sink SELECT * FROM source;

动态表达式变量

全局 SQL 变量支持动态表达式,变量值会在作业保存/发布时动态计算。
-- 使用日期工具获取当天日期
CREATE TABLE sink (
id INT,
dt STRING
) WITH (
'connector' = 'filesystem',
'path' = '/data/${dateUtil.today()}'
);

-- 使用 UUID 工具生成唯一标识
INSERT INTO sink SELECT id, '${IdUtil.simpleUUID()}' FROM source;
当前注册的工具类及常用方法如下(完整 API 请参考 Hutool 5.8.25 文档):
工具类前缀
对应 Hutool 类
dateUtil
cn.hutool.core.date.DateUtil
idUtil
cn.hutool.core.util.IdUtil
randomUtil
cn.hutool.core.util.RandomUtil
strUtil
cn.hutool.core.util.StrUtil
注意:
仅上述 4 个工具类前缀在白名单中,使用其他前缀的表达式会被跳过,保持原样输出。