案例:脚本增强,系统函数和变量的动态结合

01 案例简介
为脚本赋予「决策」能力:基于至轻云平台,利用系统函数和变量在脚本中嵌入逻辑判断。
案例目标: 编写一个包含条件判断的SQL脚本。当指定条件成立时,执行语句A;否则,执行语句B。展示如何在ETL作业中实现动态、智能的SQL逻辑。
02 操作步骤
第一步:创建数据源
登录 - 资源管理 - 数据源 - 添加数据源
创建数据源是构建JDBC查询作业的基础,使用状态为可用的数据库。

第二步:创建JDBC查询作业
登录 - 数据开发 - 作业流 - 添加作业流 - 添加作业
选择 JDBC查询 作业类型,并关联上一步创建好的数据源。

第三步:编写带有逻辑判断的SQL脚本
点击作业 - 编辑脚本
这里我们使用
if_then函数作为逻辑判断的核心。下面的脚本演示了如何根据当前时间与明天的比较来决定执行哪个SQL语句。
#[[
--if条件:如果条件为真,执行第一个SQL;否则执行第二个SQL
if_then(
-- 条件部分:判断当前时间是否在明天之后(恒为False,用于演示)
date_after( now(), add_day(now(),1)),
-- 条件为True时执行的SQL:查询明天此刻的时间字符串
concat(
'select',
' \'',
date_to_str(add_day(now(),1),'YYYY-MM-dd hh:mm:ss'),
'\''),
-- 条件为False时执行的SQL:查询当前的月份(系统变量)
concat(
'select',
' \'',
${qing.current_month},
'\'')
)
]]
第四步:运行并查看结果
保存作业 - 点击运行
由于
date_after(now(), add_day(now(),1))条件永远为假,您将看到作业返回的是当前的月份,而非明天的日期,从而验证了逻辑判断的生效。

✅ 操作完成 🎉
03 功能说明
系统函数一览
| 系统函数 | 返回类型 | 说明 |
|---|---|---|
now() |
Date | 获取当前系统时间 |
add_day(Date date, int days) |
Date | 对日期进行加减天数操作 |
add_month(Date date, int months) |
Date | 对日期进行加减月数操作 |
date_to_str(Date date, String format) |
String | 按指定格式将日期转为字符串 |
if_then(Boolean isTrue, String sql1, String sql2) |
String | 三元运算符,根据条件返回不同SQL片段 |
date_before(Date date1, Date date2) |
Boolean | 判断date1是否在date2之前 |
date_after(Date date1, Date date2) |
Boolean | 判断date1是否在date2之后 |
concat(Object... args) |
String | 拼接多个对象为字符串 |
系统函数使用示例
获取当前时间加一天,并格式化为指定字符串。
注意:函数支持嵌套调用,但所有逻辑需写在#[[ ... ]]代码块内。
select '#[[ date_to_str(add_day(now(),1),'YYYY-MM-dd hh:mm:ss') ]]'
系统变量一览
系统变量以
${qing.xxx}的形式提供,用于获取任务运行时的上下文信息。
| 系统变量 | 返回类型 | 说明与示例 |
|---|---|---|
${qing.current_date} |
字符串 | 当前日期,格式:yyyy-MM-dd (如 2024-12-12) |
${qing.current_year} |
字符串 | 当前年份,格式:yyyy (如 2024) |
${qing.current_month} |
字符串 | 当前月份,格式:MM (如 12) |
${qing.current_date1} |
字符串 | 当前日期紧凑格式:yyyyMMdd (如 20241212) |
系统变量使用示例
在SQL中直接引用系统变量。
注意:返回的系统变量均为字符串类型。
select '${qing.current_date}'
变量与函数混合使用
平台解析顺序为:先解析系统变量,再执行系统函数。这意味着您可以在函数参数中引用变量,实现更灵活的配置。
04 更多定制与扩展
至轻云平台支持高度定制化,以满足您更复杂的业务场景:
- AI 集成:
- 系统变量集成AI:AI模型可动态生成变量值,供SQL使用。
- 系统函数集成AI:创建AI函数,直接在SQL中调用AI能力(如文本分析、预测)。
- 可视化增强:
- 系统变量可视化编辑:通过UI界面配置和管理变量,无需手动编写。
- 系统函数可视化编辑:拖拽式构建函数逻辑,降低使用门槛。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)