使用变量可以有效降低重复编写相同值的工作量,从而提升配置管理的效率。通过变量的复用,可以在 SQL 开发、批任务开发及工作流等场景中简化代码的维护和调整,进而提高开发效率。本文将为您详细介绍如何创建变量及其在不同场景下的具体使用方法。
背景信息
变量由变量名和变量值组成。其中,变量名是您自定义的名称,用于代替真实数据;变量值则是变量名所对应的具体内容。在运行时,您可以通过
${变量名}
的方式引用变量,系统会自动将其替换为对应的真实值。以下场景支持自定义变量的使用:
数据开发变量
新增自定义变量
SparkSQL 开发
新建 SparkSQL 数据开发的具体操作,请参见 SparkSQL 开发快速入门 。
-
拷贝如下代码到新增的 SparkSQL 开发页签中。
CREATE TABLE IF NOT EXISTS students_info ( name VARCHAR(64), address VARCHAR(64) USING PARQUET PARTITIONED BY (data_date STRING); INSERT OVERWRITE TABLE students_info PARTITION (data_date = '${my_date}') VALUES ('Ashua Hill', '456 Erica Ct, Cupertino'), ('Brian Reed', '723 Kern Ave, Palo Alto'); -
单击右侧的 变量管理 ,设置变量值(例如,2025-04-15)。
-
在新增的页签中,再输入并运行以下命令,查询表数据。
SELECT * FROM students_info;返回以下信息,确认变量是否被正确解析。
批任务开发
新建批任务数据开发的具体操作,请参见 批任务或流任务开发 。
-
在新增的批任务开发页签的 运行参数 中,设置变量名(例如,
${osspath})。 -
单击右侧的 变量管理 ,设置变量值。
使用内置变量
新建 SparkSQL 数据开发的具体操作,请参见 SparkSQL 开发快速入门 。
拷贝如下代码到新增的页签中并运行。
CREATE TABLE IF NOT EXISTS students_address (
name VARCHAR(64),
address VARCHAR(64)
USING PARQUET
PARTITIONED BY (data_date STRING);
INSERT OVERWRITE TABLE students_address PARTITION (data_date = '${ts}') VALUES
('Ashua Hill', '456 Erica Ct, Cupertino'),
('Brian Reed', '723 Kern Ave, Palo Alto');
SELECT * FROM students_address;
返回以下信息。
使用内置变量时,其值默认基于系统时区(UTC+8)的前一日生成,且不支持自定义修改。目前支持以下基础日期变量。
|
变量 |
数据类型 |
说明 |
|
{data_date} |
str |
表示日期信息的变量,格式为
例如,2023-09-18。 |
|
{ds} |
str |
|
|
{dt} |
str |
|
|
{data_date_nodash} |
str |
表示日期信息的变量,格式为
例如,20230918。 |
|
{ds_nodash} |
str |
|
|
{dt_nodash} |
str |
|
|
{ts} |
str |
表示时间戳,格式为
例如,2023-09-18T16:07:43。 |
|
{ts_nodash} |
str |
表示时间戳,格式为
例如,20230918160743。 |
查看或修改变量值
-
单击您已有数据开发页签右侧的 变量管理 。
-
在 变量管理 区域,会为您展示当前数据开发的所有变量信息。
-
您可以在该区域查看或修改自定义变量的值。
任务编排变量
-
任务编排支持设置工作流和节点级别的变量。遵循就近优先原则:节点级别变量的定义将覆盖工作流级别的同名变量。
-
使用内置变量,不支持设置变量名。
新增工作流级别的变量
在 创建工作流 面板的变量设置区域,可以直接自定义变量,后续工作流调度时将自动对任务中的变量进行替换。
您可以在变量值的下拉列表中选择常用的时间变量,并且支持对时间变量进行自定义修改。
新增节点级别的变量
在 添加节点 面板,选择 来源文件路径 后,单击节点级别变量后的 添加变量 ,新增节点级别的变量。
您可以在变量值的下拉列表中选择常用的时间变量,并且支持对时间变量进行自定义修改。