目录:
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 |
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 是最近一次运行的结果 可以输出三个值:
这个参数一般用于设置 条件分支 节点的判断条件 |
${jobname.opresult} | 当前任务内 | jobname 是任务内节点的名称,opresult 是最近一次运行的结果 可以输出三个值:
|
${prepose.successInfo} | 当前任务内 | 步骤流中,该节点上游节点中,所有执行成功的节点名称(数组字符串) 举例:[[SQL脚本],[数据转换]] |
${prepose.failedInfo} | 当前任务内 | 步骤流中,该节点上游节点中,所有执行失败的节点名称(数组字符串) 举例:[[SQL脚本],[数据转换]] |
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)最后要保存该任务,如下图所示:
4. ${jobname.opresult}编辑
以 示例一:企业微信群机器人 为例,介绍该参数的使用。
注:该参数使用时,格式为:${ETL任务名.上游节点名称.opresult}
1)「消息通知」节点消息内容修改为:${企业微信群机器人.数据转换.opresult}。如下图所示:
2)「数据转换」节点执行成功后,企业微信群消息如下图所示:
5. ${prepose.successInfo}编辑
前期准备:参考 连线执行判断 文档中的 3.1、3.2、3.3.2 节内容。
1)「消息通知」节点消息内容修改为:${prepose.successInfo}。如下图所示:
2)任务执行后,企业微信群消息如下图所示:
消息通知内容为:「消息通知」上游节点中,所有执行成功的节点名称。
6. ${prepose.failedInfo}编辑
1)参考本文第五章示例,将「消息通知」节点消息内容修改为:${prepose.failedInfo}。如下图所示:
2)任务执行后,企业微信群消息如下图所示:
消息通知内容为:「消息通知」上游节点中,所有执行失败的节点名称。