历史版本27 :参数赋值节点 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

[helpvideo]5455[/helpvideo]

1.1 版本说明

FineDataLink 版本功能变动
1.7

新增一种节点类型:「参数赋值」,可以将取到的数据输出为参数,被下游连线节点使用,不允许跨节点使用

2.0
  • 文本型参数也支持多值

  • 新增参数预览功能,详情参见本文操作步骤

  • 新增参数值分隔符功能,详情参见本文操作步骤

  • 允许定义值相同的参数,但是会给出提醒,详情参见本文操作步骤

3.7.1
「参数赋值」下游分支所有的节点都可以使用输出的参数(可跨节点使用),但是不可跨分支被其他节点使用,详情请参见本文 功能说明
4.0.13

支持自动将参数赋值内容生成「数据转换」节点,便于使用复杂的数据处理结果生成参数,详情参见本文 3.1 节

4.0.14
  • 「数据来源」支持「FTP/SFTP」数据源

  • 「数据来源」支持「服务器本地目录」数据源

4.0.19数据来源API配置支持关闭SSL证书验证,详情参见:API关闭证书验证
4.0.23

数据来源API 配置中的 body 请求内容支持使用 Content-Type 为 form-data 和 x-www-form-urlencoded 请求格式,

允许添加多行、每行均为自定义输入、支持引用参数,详情参见 功能说明中的Headers请求参数表格

1.2 应用场景

用户希望上游节点运行的结果,能够被下游节点中的 SQL 语句使用。

此时可以通过「参数赋值」节点用参数承载上游节点运行的结果,然后在下游节点中使用该结果。

例如想要将 产品ID=2 的对应的数据同步至目标表,可以使用参数赋值功能,将产品ID=2 的 产品ID 对应的数据查出,然后设置为参数,在下游的数据同步中使该参数,将满足条件的数据同步至数据库中。

1.3 功能说明

参数赋值节点通过数据来源将需要赋值的数据取出,并为参数赋值。

将获取到的数据输出为参数,下游节点可以利用公式使用参数值。

注:参数可被同一流程中的所有下游节点应用。

2. 约束限制编辑

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

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

  • 参数赋值输出的参数,其他节点引用时的写法如下:

    值是单个字符串或单个数值:=${a}

    值是多个字符串或多个数值:in (${a})

  • 如果来源表为空,那么参数赋值预览后会报错。

  • 「参数赋值」中单个参数输出的字段值个数限制最多不能超过10000个。如果参数的输出结果超过限制,则赋值节点运行会失败。

3. 操作步骤编辑

示例数据:产品.xls

本文提供如下示例。

FRDemo 数据库中有一张数据表名为「产品」,想要将「类别ID」=2 的「产品ID」对应的「产品」数据同步至 FDLDemo 数据库中目标表。

可以使用参数赋值功能,将类别ID=2 的 产品ID 对应的数据查出,然后设置为参数,在下游的数据同步中使该参数,将满足条件的数据同步至数据库中。

3.1 参数赋值

1)创建一个 ETL 任务,将一个参数赋值节点拖到设计界面,点击该节点进行设置,设置其数据来源,将 类别ID=2 的 产品ID 对应的数据查出,如下图所示:
SQL 语句:select 产品ID from 产品 where 类别ID=2

2)点击数据预览查看取数效果,已经取出满足条件的「产品ID」如下图所示:

3)将取出的产品ID输出为参数。

点击「输出参数」,设置参数名为 id_para ,因为取出的「产品ID」字段位于取出数据的第一列,因此选择指定列并将其设置为 1,并且由于取出的「产品ID」有多个数据,由于数据是数值所以用数值型分隔符,如下图所示:

如果想要在任务未运行时也就是任务开发阶段,下游节点用到参数的地方可以提前查看效果,可以给参数赋值节点设置默认值,这里默认值设置为 6,如下图所示:

注:默认值只是为了下游节点提前预览设置的,实际运行时不会用到这个默认值。

设置好后可以用右侧的参数预览查看参数的效果,如下图所示:

注:参数赋值只能生成一条数据,若需要分开输出多条数据,可以使用循环容器

此时若发现取出的数据需要进行一些复杂的操作,例如行列转换数据关联JSON解析等数据处理和转换才能成为参数,则可以使用「生成数据转换」功能,将根据「参数赋值」节点的数据来源和输出参数,新增一个「数据转换」节点,你可以使用数据转换替代参数赋值进行复杂的数据处理工作,将处理好的数据使用「参数输出」设置参数,如下图所示:

注1:当「循环容器」内的「数据同步」「参数赋值」快速转「数据转换」时,生成的「数据转换」限制在循环容器内。

注2:若「数据同步」、「参数赋值」前后有节点连线,转「数据转换」时,生成的「数据转换」不影响原先节点连线关系。

3.2 使用参数

设置好参数后,即可在下游的数据同步中使该参数,将满足条件的数据同步至数据库中。

1)将一个数据同步节点拖到设计界面,并用线跟上游参数赋值节点连接起来,如下图所示:

2)点击数据同步节点进行编辑,从 FRDemo 数据库中,使用 SQL 语句取出「产品」数据表中满足「参数赋值」中参数条件的所有数据,也就是取出满足类别ID=2 的 产品ID 对应的所有数据,如下图所示:

注:跟自定义参数不同,参数赋值节点的参数引用时,不需要加单引号。

3)点击「数据预览」,由于「参数赋值」节点中写了一个默认值 6,因此可以预览查看到产品ID为6的数据,如下图所示:

4)设置数据去向,将满足条件的数据同步至 FDLDemo 数据库里的「fdldemo_CSFZ」表中,如下图所示:

3.3 运行任务

保存并运行节点,如下图所示:

可以看到 FDLDemo 数据库里的「fdldemo_CSFZ」表同步了满足 类别ID=2 的数据,如下图所示:

4. 注意事项编辑

4.1 允许定义相同行列值参数

定义参数时,允许参数的行列值相同,但是出现这样的参数时,会给出提醒:参数的行列值存在重复值,如下图所示:

6.png

4.2 功能变动

1649854536704059.png

3.7.1 之前版本

将取到的数据输出为参数,被下游连线节点使用。

如上图所示,「参数赋值1」输出的参数只能被「数据同步2」节点使用。

3.7.1 及之后版本

1)「参数赋值」下游分支所有的节点都可以使用输出的参数,但是不可跨分支被其他节点使用。

如上图所示,「参数赋值1」输出的参数可被「数据同步2」、「数据转换1」使用,但是不可被其他节点使用。

2)「参数赋值」节点执行后输出的参数值,在下次执行之前都是固定的,即传递给下游节点的参数值均为固定的,不会受下游步骤影响。

可以看到数据库中多了一张表:

13.png