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

目录:

1. 概述编辑

1.1 版本说明

FineBI 版本功能变更
6.0

-

1.2 应用场景

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

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

1.3 功能简介

节点从左侧列表拖到设计界面,再点击该节点即可在下方显示所有设置项。参数赋值节点共有两个设置项,其具体的作用分别如下:

  • 数据来源:使用 SQL 语句获取上游节点的数据

  • 输出参数:将获取到的数据输出为参数,下游节点可以引用该参数

赋值节点参数定义和使用须知:

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

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

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

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

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

2. 功能介绍编辑

2.1 参数预览

输出参数时,可以点击「参数预览」查看参数参数名、参数值以及参数的输出格式。

2.2 分隔符

参数为多值时,可以使用分隔符隔开这些值。数值型和文本型参数值需要选择不同的分隔符选项。

2.3 默认值

参数赋值节点未实际运行时,参数还没输出,此时在任务里下游使用到该参数的地方,是不能提前查看效果的。

例如:参数赋值节点的下游节点是一个数据同步,数据同步的 SQL 语句里用到了该参数,如果直接数据预览是查不出数据的。如下图所示:

如果想要实现在任务未运行时,下游节点用到参数的地方,可以提前查看效果,只需要给参数赋值节点设置下默认值即可。如下图所示:

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

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

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

2.5 其他说明

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

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

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

3. 示例编辑

此处给出一个示例,演示从 fsale 表中将销量最高的水果数据取出并输出为参数,然后数据同步节点中引用该参数,将该参数对应 fdetail 表中的数据抽取到另一张表。

3.1 参数赋值

1)创建一个 ETL 任务,将一个参数赋值节点拖到设计界面,点击该节点进行设置,如下图设置其数据来源,SQL 语句的作用是取出 fsale 表中销量最高的水果名。

可以用数据预览查看下取数效果,如下图所示:

2)再将取出的最大销量水果输出为参数,因为只有一个数据,所以列和行都设置为 1,由于数据是文本所以用文本型分隔,如下图所示:

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

3.2 引用参数

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

2)点击数据同步节点进行编辑,数据来源如下图设置,SQL 语句的作用是取出 fdetail 表中上游节点参数对应的所有数据,如下图所示:

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

3)设置数据去向,将抽取的数据保存到另一个数据库的新建表中,如下图所示:

3.3 运行任务

保存并运行节点,出现执行成功提示表示任务运行成功,如下图所示:

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