循环是出现在作业中的概念,因为转换里的步骤是并行执行的,所以循环对它来说没什么意义。循环的需求肯定是“我想执行多次某个作业(转换)”。
得到这样的需求,我们可以通过两种方式完成。一种是使用js脚本的方式,配合“条件判断”作业项来完成循环,因为这种方法太过复杂,所以不在本节详细描述。
下面介绍一种方法可以直接对作业或者转换进行循环。避免在作业中产生更多的作业项。
做这个实验需要两个转换和一个作业。他们分别如下:
- Jb_Test_Cycle_2 :整体调度,包括了Tr_Test_Cycle_1、Tr_Test_Cycle_2
- Tr_Test_Cycle_1 :获取系统时间,插入到日志表中
- Tr_Test_Cycle_2 :生成4条记录,让Tr_Test_Cycle_1 执行4次。
接下来看看他们的配置:
1、Jb_Test_Cycle_1 的拓扑如下:
2、需要单独对Tr_Test_Cycle_1进行配置:
双击Tr_Test_Cycle_1 在Advanced 选项卡中勾选 下图所示的复选框。
表示前面每传过来一行数据,我都要执行一次转换。有点像一个for循环。
3、Tr_Test_Cycle_1 的配置:
使用行生成工具,生成一行,不仅仅限于这个工具。
获取系统时间可以获取到当前的系统时间。
4、Tr_Test_Cycle_2 的配置:
5、从数据库中查看日志表,得到的结果就是4条信息
说明Tr_Test_Cycle_1整体循环了4次。
时间: 2024-10-02 05:00:00