1. 概述
1.1 版本
FineDataLink 版本 | 功能变动 |
---|---|
1.7 | 支持自定义参数功能:「参数设置」 |
2.0 | 允许定义值相同的参数,但是会给出提醒,详情参见本文 4.1 节 |
4.0.19 | 支持定义的参数类型,从日期、字符串、整型、双精度型、布尔型,改为日期、文本、数值、布尔 |
4.0.24 | 支持参数 yy |
4.1.0 | 原「参数设置」改名为「参数列表」,分为任务内参数、全局参数、内置参数;在「参数列表」界面中,可查看该任务可用的参数 |
1.2 应用场景
业务流程中有时需要根据实际业务情况设置参数便于进行后续的数据处理和开发,FineDataLink 支持用户自定义参数,在数据开发中直接引用参数即可。
1.3 功能简介
用户可在「参数列表」中添加「任务参数」,即自定义参数,定义好的参数可在当前任务中引用。如下图所示:
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 等,其中:
注:参数格式不支持:mi:ss、mi、ss
时间格式 | 说明 |
---|---|
yyyy | 表示 4 位的年份,取值为 ${cyctime} 的年份。 |
mm | 表示月,取值为 ${cyctime} 的月份。 |
dd | 表示天,取值为 ${cyctime} 的天。 |
hh | 表示小时(24小时制),取值为 ${cyctime} 的小时。 |
mi | 表示分钟,取值为 ${cyctime} 的分钟。 |
ss | 表示秒,取值为 ${cyctime} 的秒。 |
yy | 取年份的后两位数字,比如今年是 2024 年,yy 的值为 24 |
例如要自定义时间参数 para_time,默认值为 ${cyctime} 所在年份的前年,写法如下图所示:
注:默认参数为时间类型。
目的 | 输入方式 | 示例(假设${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 |
前 N 小时 (只显示时分秒) | hh:mi:ss-N/24 | 当前时间为 17:21:43 若 N 为3,则值为 14:21:43 |
后 N 小时 (只显示时分秒) | hh:mi:ss+N/24 | 当前时间为 17:21:43 若 N 为3,则值为 22:21:43 |
前 N 分钟 (只显示时分秒) | hh:mi:ss-N/24/60 | 当前时间为 17:21:43 若N为 5,则值为 17:16:43 |
后 N 分钟 (只显示时分秒) | hh:mi:ss+N/24/60 | 当前时间为 17:21:43 若N为 5,则值为 17:26:43 |
前 N 秒 (只显示时分秒) | hh:mi:ss-N/24/60/60 | 当前时间为 17:21:43 若N为 5,则值为 17:21:38 |
定义时间参数的一个简单示例如下:
1)新建一个 ETL 任务,自定义一个 para_time 参数,默认值为 yyyy-mm-1(意为取值为 ${cyctime} 的前一个月)。如下图所示:
注:参数设置的值类型需要和 SQL 语句中的时间字段类型一致,比如示例中使用的参数值是yyyy-mm-1,则下面步骤中 SQL 语句中「mytime」日期字段类型也应该是 yyyy-mm-dd 类型,而不能是 yyyy/mm/dd 类型。
2)任务拖入一个「数据同步」节点,设置数据来源,输入 SQL 语句,只取出日期字段中小于参数的数据。
3)点击「数据预览」,可以看到取出了运行前一个月之前的数据。如下图所示:
4. 自定义常量参数
除了可以自定义时间参数,用户还可以自定义常量参数,可以是数字或文本等。
常量参数支持设置的类型有:「文本」、「数值」、「布尔」。
定义常量参数的示例如下:
1)创建一个定时任务,定义一个文本类型的参数「para_a」,默认参数值有多个,用逗号将'销售经理'和'销售代表'分开,如下图所示:
2)在其他节点的 SQL 语句中可以使用该参数,比如「数据同步」节点中只取出职务为「销售经理」和「销售代表」的数据。如下图所示:
3)点击「数据预览」,可查看取出的数据。如下图所示:
需要注意的是,当参数类型是文本时:
若参数值是单个值,可以直接输入文本,例如参数名称为 a,值为:苹果,使用时需要加单引号:'${a}'
若参数值是多个值,参数值需要用单引号和逗号分开,例如参数名称为 a ,值为:'苹果','香蕉',使用时不需要加单引号:${a}