历史版本2 :内置参数 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本说明

FineDataLink 版本功能变动
1.7增加内置参数:${cyctime}、${workname.opresult}、${jobname.opresult}
4.0.3

1)增加内置参数:${prepose.successInfo}、${prepose.failedInfo}

2)${workname.opresult}内置参数输出的三个值中,fail 改成了 error

3)${jobname.opresult}内置参数,新增输出值 skipped

4.0.3.1
新增参数:${loopTimes}

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 是最近一次运行的结果

可以输出三个值:

  • success:任务运行成功

  • error:任务运行报错(4.0.3 版本之前,该值为 fail

  • invalid:任务中止运行

这个参数一般用于设置 条件分支 节点的判断条件

${jobname.opresult}当前任务内jobname 是任务内节点的名称,opresult 是最近一次运行的结果

可以输出三个值:

  • success:节点运行成功

  • fail:节点运行失败

  • skipped:节点跳过执行(4.0.3 版本新增

${prepose.successInfo}当前任务内步骤流中,该节点上游节点中,所有执行成功的节点名称(数组字符串)

举例:[[SQL脚本],[数据转换]]

${prepose.failedInfo}当前任务内步骤流中,该节点上游节点中,所有执行失败的节点名称(数组字符串)

举例:[[SQL脚本],[数据转换]]

${loopTimes}循环容器内容器内当前循环次数,初次为 1 ,后续每次循环递增加 1

2. ${cyctime}编辑

使用内置参数 ${cyctime} ,可以实现每次运行任务时,只同步运行时间点前一个月的数据。下面用一个示例演示如何实现这样的效果:

1)新建一个 ETL 任务,并将一个数据同步节点拖到设计界面,如下图所示:

2.gif

2)如下图设置节点的数据来源,其中 SQL 语句的作用是:从表「fine_backup_node」中取出 backupTime (备份日期) 前 30 天的数据。

3.png

SQL 语句如下:

select * from fine_backup_node where backupTime > DATE_SUB("${cyctime}",interval 30 day)

设置好后可以先用「数据预览」看看效果,可以看到取出来的都是系统当前时间前 30 天的数据,如下图所示:

注:点击「数据预览」时 cyctime 的默认值为系统的当前时间;而当任务运行时 cyctime 的值为任务调度执行的时间,所以数据预览的数据与实际运行写入到数据库的数据可能不一致。

1647488447214845.png

3)设置数据去向,在另一个数据库中建表保存抽取的数据,并保存该任务,如下图所示:

5.png

4)给任务开启调度配置,设置好开始时间和执行频率,让任务自开始时间起每隔 30 天执行一次。设置好后一定要保存任务,如下图所示:

6.png

3. ${workname.opresult}编辑

内置参数 ${workname.opresult} 一般用于设置 条件分支 节点的判断条件。

例如某个其他任务最近一次的执行结果是成功时,本任务才能顺利执行,具体实现方法如下:

1)将一个数据同步节点和一个条件分支节点拖到设计界面,并将它们连接起来,如下图所示:

3.gif

2)点击数据同步节点,设置数据同步将 sales 表数据抽取到 presale 表中。其中数据来源的设置如下图所示:

7.png

数据去向的设置如下图所示:

8.png

3)点击条件分支节点,给该节点添加一个条件,点击操作按钮打开条件编辑界面。

9.png

条件编辑界面直接新增一个条件,参数栏直接填「销售核算.opresult」然后回车,最右侧文本框填「success」,如下图所示:

这个条件的意思是,当销售核算这个 ETL 任务最近一次执行结果是成功,当前这个任务运行时就执行下面的数据同步节点,否则不执行。

10.png

4)最后要保存该任务,如下图所示:

11.png

4. ${jobname.opresult}编辑

以 示例一:企业微信群机器人 为例,介绍该参数的使用。

注:该参数使用时,格式为:${ETL任务名.上游节点名称.opresult}

1)「消息通知」节点消息内容修改为:${企业微信群机器人.数据转换.opresult}。如下图所示:

14.png

2)「数据转换」节点执行成功后,企业微信群消息如下图所示:

15.png

5. ${prepose.successInfo}编辑

前期准备:参考 连线执行判断 文档中的 3.1、3.2、3.3.2 节内容。

1)「消息通知」节点消息内容修改为:${prepose.successInfo}。如下图所示:

16.png

2)任务执行后,企业微信群消息如下图所示:

消息通知内容为:「消息通知」上游节点中,所有执行成功的节点名称。

17.png

6. ${prepose.failedInfo}编辑

1)参考本文第五章示例,将「消息通知」节点消息内容修改为:${prepose.failedInfo}。如下图所示:

18.png

2)任务执行后,企业微信群消息如下图所示:

消息通知内容为:「消息通知」上游节点中,所有执行失败的节点名称。

19.png

7. ${loopTimes}编辑

前期准备:参考 循环容器节点 文档中的 3.1、3.2、3.3 节内容。

1)在「循环容器」节点内拖入「消息通知」节点。设置界面如下图所示:

20.png

2)任务执行后,企业微信群消息如下图所示:

1654140060139914.png