覆盖主要内容
版本: 6.1.0

阻塞数据

组件介绍

阻塞数据步骤将阻塞所有输出,直到从上一步收到最后一行才运行通行。此时,将最后一行发送到下一步,或者将完整的输入发送到下一步。


  • 输入:前一步骤带来的数据信息
  • 输出:最后一行数据或者完整的输入数据

页面介绍

双击阻塞数据组件得到下图所示的界面:

参数选项

阻塞数据组件页面包含如下选项:

选项说明样例值
步骤名称步骤的唯一名称,可以自定义名称或保留默认名称阻塞数据
Pass all rows?确定是传递一行还是所有行勾选后选择下述参数
临时文件目录如果需要,在其中存储临时文件的目录;默认值是系统的标准临时目录tmpdir
临时文件前缀选择可识别的前缀,以标识文件在临时目录中显示时block
缓存大小在内存中存储的行数越快,步骤工作越快5000
压缩临时文件?根据需要压缩临时文件勾选

使用案例

UDI转换中的各个步骤是并列执行的关系,作业中的步骤才是有先后顺序的。这样就可能会遇到一种情况,我想在转换的某个步骤完成后才执行它下面的步骤,这时该怎么办呢?那么这时就可以用到【阻塞数据】和组件; 【阻塞数据】:这个组件只允许前一个步骤的最后一条数据通过,就是不到最后一条数据不往后面传数据; 【注】:虽然阻塞了,但是阻塞之后的步骤仍然在运行,即运行时间仍然在进行;

当最后的SQL脚本想在前面的步骤执行完后执行,可用【阻塞数据】实现。 【注】:此时别忘了勾选“执行每一行”这个选项。逻辑原理是:只有执行每一行,该步骤才会向上级步骤要数据,因为上级阻塞了不给数据,这样阻塞才能起作用。当【阻塞数据】通过最后一条数据后,也是唯一一条数据,SQL脚本才执行一次,这正是我们想要的目的。