1. 概述编辑
1.1 版本说明
报表服务器版本 | 插件版本 | 功能变动 |
---|---|---|
11.0 | V1.7 | 支持调用两个内置参数 |
1.2 应用场景
插件提供了一些内置参数,这些参数无需定义即可直接调用。
1.3 功能简介
目前可以使用的内置参数如下:
参数写法 | 参数说明 |
---|---|
${cyctime} | ${cyctime} 为 ETL 任务在 调度配置 中设置的每次运行的时间节点; 格式为 yyyy-mm-dd hh:mm:ss,输出的实际值格式为:2021-09-09 20:45:50,取值精确到时分秒; 且这个时间是任务进入运行队列的时间,并非实际运行的时间,实际运行的时间比进入运行队列的时间要晚一些; 当需要使用任务运行的时间做一些操作时,就可以引用内置的 ${cyctime} 参数,例如: 某个任务 30 天运行一次,那每次只需更新运行时间节点( ${cyctime})前 30 天的数据就可以了 |
${workname.opresult} | workname 是 ETL 任务的名称,opresult 是最近一次运行的结果,可以输出三个值:
这个参数一般用于设置 条件分支 节点的判断条件 |
2. ${cyctime}编辑
使用内置参数 ${cyctime} ,可以实现每次运行任务时,只同步运行时间点前一个月的数据。下面用一个示例演示如何实现这样的效果:
1)新建一个 ETL 任务,并将一个数据同步节点拖到设计界面,如下图所示:
2)如下图设置节点的数据来源,其中 SQL 语句的作用是:从表「fine_backup_node」中取出 backupTime (备份日期) 前 30 天的数据。
SQL 语句如下:
select * from fine_backup_node
where backupTime > DATE_SUB("${cyctime}",interval 30 day)
设置好后可以先用「数据预览」看看效果,可以看到取出来的都是系统当前时间前 30 天的数据,如下图所示:
注:点击「数据预览」时 cyctime 的默认值为系统的当前时间;而当任务运行时 cyctime 的值为任务调度执行的时间,所以数据预览的数据与实际运行写入到数据库的数据可能不一致。
3)设置数据去向,在另一个数据库中建表保存抽取的数据,并保存该任务,如下图所示:
4)给任务开启调度配置,设置好开始时间和执行频率,让任务自开始时间起每隔 30 天执行一次。设置好后一定要保存任务,如下图所示:
3. ${workname.opresult}编辑
内置参数 ${workname.opresult} 一般用于设置 条件分支 节点的判断条件。
例如某个其他任务最近一次的执行结果是成功时,本任务才能顺利执行,具体实现方法如下:
1)将一个数据同步节点和一个条件分支节点拖到设计界面,并将它们连接起来,如下图所示:
2)点击数据同步节点,设置数据同步将 sales 表数据抽取到 presale 表中。其中数据来源的设置如下图所示:
数据去向的设置如下图所示:
3)点击条件分支节点,给该节点添加一个条件,点击操作按钮打开条件编辑界面。
条件编辑界面直接新增一个条件,参数栏直接填「销售核算.opresult」然后回车,最右侧文本框填「success」,如下图所示:
这个条件的意思是,当销售核算这个 ETL 任务最近一次执行结果是成功,当前这个任务运行时就执行下面的数据同步节点,否则不执行。
4)最后要保存该任务,如下图所示: