1. 概述
1.1 应用场景
demo1 数据库中有一张数据表名为「S产品」,想要将「类别ID」=2 的数据同步到 demotest 数据库中。
1.2 实现思路
「S产品」中,「产品ID」为主键,先取出「类别ID」=2 数据的「产品ID」值,设置为参数,在下游的数据同步中使该参数,将满足条件的数据同步至数据库中。
demo示例详情请参见:https://demo.finedatalink.com/ 「参数赋值-」
2. 操作步骤
2.1 参数赋值
1)新建定时任务,拖入「参数赋值」节点。
2)取出「类别ID」=2 数据的「产品ID」值,设置为参数。如下图所示:
SQL语句:
select 产品ID from `demo1`.`S产品` where 类别ID=2
点击「数据预览」,可看到「类别ID」=2 数据的「产品ID」值被取出。如下图所示:
3)将取出的「产品ID」输出为参数。
点击「输出参数」,设置参数名为 id_para ;因为取出的「产品ID」字段位于取出数据的第一列,因此取出第一列所有行的数据作为参数值。对「参数赋值」中单个参数输出的字段值个数进行限制,限制最多不能超过 10000 个。
由于取出的「产品ID」是数值,所以不开启「闭包符」;点击「参数预览」按钮,预览成功后,自动选取前五个值填入对应参数的调试值。
注:调试值只是为了下游节点提前预览设置的。
如下图所示:
注:参数赋值只能生成一条数据,若需要分开输出多条数据,可以使用 循环容器
此时若发现取出的数据需要进行一些复杂的操作,例如行列转换、数据关联、JSON解析等数据处理和转换才能成为参数,则可以使用「生成数据转换」功能,将根据「参数赋值」节点的数据来源和输出参数,新增一个「数据转换」节点,你可以使用「数据转换」替代「参数赋值」进行复杂的数据处理工作,将处理好的数据使用「参数输出」设置参数,详情请参见:参数赋值生成数据转换
2.2 使用参数
设置好参数后,即可在下游的数据同步中使该参数,将满足条件的数据同步至数据库中。
1)拖入「数据同步」节点,与「参数赋值」节点相连。
2)设置「数据同步」节点,从 demo1 数据库中取出「S产品」数据表中满足「参数赋值」中参数条件的所有数据,也就是取出满足「类别ID」=2 的「产品ID」对应的所有数据。如下图所示:
SQL 语句:
SELECT * FROM `demo1`.`S产品` where 产品ID in (${id_para})
注:跟自定义参数不同,参数赋值节点的参数引用时,不一定需要加单引号,如果在「参数赋值」中定义的分隔符是正确的,那么使用时直接用${参数名}即可。
3)设置数据去向。将满足条件的数据同步至 demotest 数据库里的「canshu」表中。如下图所示:
3)写入方式默认即可。
2.3 效果查看
1)点击「运行」按钮,任务运行成功后。如下图所示:
2)数据库表数据如下图所示: