历史版本14 :自定义参数(任务参数) 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

FineDataLink 版本功能变动
1.7
支持自定义参数功能:「参数设置」
2.0允许定义值相同的参数,但是会给出提醒,详情参见本文 4.1 节
4.0.19

支持定义的参数类型,从日期、字符串、整型、双精度型、布尔型,改为日期、文本、数值、布尔

4.0.24支持参数 yy

1.2 应用场景

业务流程中有时需要根据实际业务情况设置参数便于进行后续的数据处理和开发,FineDataLink 支持用户自定义参数,在数据开发中直接引用参数即可。

本章将介绍 FineDataLink中快捷高效的自定义参数的方法。

1.3 功能简介

新建一个任务后,支持定义 4 种类型的参数,分别是:日期、文本、数值、布尔。

定义好的参数可在当前任务中引用。

2. 注意事项编辑

  • 参数名和参数值中不允许包含${} 

  • 用户设置的参数只归属于当前任务

  • 若参数为整型、双精度型、布尔型,直接用${参数名}的方式引用参数;

  • 若参数值为字符类型、日期类型,需要加上单引号引用参数:'${参数名}'。

3. 自定义时间参数编辑

自定义时间参数需要基于系统内置参数 ${cyctime},通过对 ${cyctime} 加减实现时间的自定义,自定义的格式为:${时间格式+N} 或${时间格式-N}

「时间格式」可以通过 yyyy、yy、mm、dd、hh、mi、ss 自由组合成 yyyy、mm、dd、yyyymm、mmdd、yyyymmdd、yyyy-mm-dd、yyyy-mm-dd hh:mi:ss 等,其中:

  • yyyy 表示 4 位的年份,取值为 ${cyctime} 的年份。

  • mm 表示月,取值为 ${cyctime} 的月份。

  • dd 表示天,取值为 ${cyctime} 的天。

  • hh 表示小时(24小时制),取值为 ${cyctime} 的小时。

  • mi 表示分钟,取值为 ${cyctime} 的分钟。

  • ss 表示秒,取值为 ${cyctime} 的秒。

例如要自定义时间参数 para_time,默认值为 ${cyctime} 所在年份的前年,写法如下图所示:

注:默认参数为时间类型。

4.png

目的输入方式
示例(假设${cyctime}的值为 2021-09-09 20:45:50)
后 N 年yyyy+N若N为 1,则值为 2022
前 N 年yyyy-N若N为 1,则值为 2020
后 N 月

yyyymm+N

或者

yyyy/mm+N

若N为 6,则值为 202203
前 N 月

yyyymm-N

或者

yyyy/mm-N

若N为 6,则值为 202103
后 N 周

yyyymmdd+7*N

或者

yyyy/mm/dd+7*N

若N为 1,则值为 20210916
前 N 周

yyyymmdd-7*N

或者

yyyy/mm/dd-7*N

若N为 1,则值为 20210902
后 N 天,年月日加 N 天

yyyymmdd+N

或者

yyyy/mm/dd+N

若N为 1,则值为 20210910
前 N 天,年月日减 N 天

yyyymmdd-N

或者

yyyy/mm/dd-N

若N为 1,则值为 20210908
前 N 小时

yyyymmdd hh:mi:ss-N/24

或者

yyyy/mm/dd hh:mi:ss-N/24

若N为 1,则值为 20210909 19:45:50
后 N 小时

yyyymmdd hh:mi:ss+N/24

或者

yyyy/mm/dd hh:mi:ss+N/24

若N为 1,则值为 20210909 21:45:50
前 N 分钟yyyy-mm-dd hh:mi:ss-N/24/60若N为 5,则值为 2021-09-09 20:40:50
后 N 分钟yyyy-mm-dd hh:mi:ss+N/24/60若N为 5,则值为 2021-09-09 20:50:50
前 N 秒yyyy-mm-dd hh:mi:ss-N/24/60/60

若N为 5,则值为 2021-09-09 20:45:45  

定义时间参数的一个简单示例如下:

1)新建一个 ETL 任务,自定义一个 para_time 参数,默认值为 yyyy-mm-1(意为取值为 ${cyctime} 的前一个月)。如下图所示:

注:参数设置的值类型需要和 SQL 语句中的时间字段类型一致,比如示例中使用的参数值是yyyy-mm-1,则下面步骤中 SQL 语句中「mytime」日期字段类型也应该是 yyyy-mm-dd 类型,而不能是 yyyy/mm/dd 类型。

5.png

2)任务拖入一个「数据同步」节点,设置数据来源,输入 SQL 语句,只取出日期字段中大于参数的数据。

3)点击「数据预览」,可以看到取出了运行前一个月内的数据。如下图所示:

1647488797905731.png

4. 自定义常量参数编辑

除了可以自定义时间参数,用户还可以自定义常量参数,可以是数字或文本等。

常量参数支持设置的类型有:「文本」、「数值」、「布尔」。

定义常量参数的示例如下:

1)创建一个定时任务,定义一个文本类型的参数「para_a」,默认参数值有多个,用逗号将'苹果''香蕉'分开,如下图所示:

2)在其他节点的 SQL 语句中可以使用该参数,比如数据同步节点中只取出苹果和香蕉的数据,如下图所示:

需要注意的是,当参数类型是文本时:

  • 若参数值是单个值,可以直接输入文本,例如参数名称为 a,值为:苹果,使用时需要加单引号:'${a}'

  • 若参数值是多个值,参数值需要用单引号和逗号分开,例如参数名称为 a ,值为:'苹果','香蕉',使用时不需要加单引号:${a}