20260302143508

01 案例简介

为脚本赋予「决策」能力:基于至轻云平台,利用系统函数和变量在脚本中嵌入逻辑判断。

案例目标: 编写一个包含条件判断的SQL脚本。当指定条件成立时,执行语句A;否则,执行语句B。展示如何在ETL作业中实现动态、智能的SQL逻辑。

02 操作步骤

第一步:创建数据源

登录 - 资源管理 - 数据源 - 添加数据源

创建数据源是构建JDBC查询作业的基础,使用状态为可用的数据库。

20260302151721

第二步:创建JDBC查询作业

登录 - 数据开发 - 作业流 - 添加作业流 - 添加作业

选择 JDBC查询 作业类型,并关联上一步创建好的数据源。

20260302151940

第三步:编写带有逻辑判断的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)) 条件永远为假,您将看到作业返回的是当前的月份,而非明天的日期,从而验证了逻辑判断的生效。

20260302152055

✅ 操作完成 🎉

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界面配置和管理变量,无需手动编写。
    • 系统函数可视化编辑:拖拽式构建函数逻辑,降低使用门槛。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐