记录集合里面的记录数

该数量是指组件与组件之间通信的缓存队列的 size 大小,Kettle 内部用 List 实现该缓存队列,每一条语句都会被封装成一个 RowSet 对象,每个组件之间都会有个 List<RowSet> 队列,源 step 每次会往该队列写一条数据,目标 step 每次会从队列读取一条数据。

Kettle 里面转换是并行的,数据是一条一条流经每个组件,队列大小采用默认的 10000 条即可。

但是当使用到「阻塞数据直至步骤完成」、「阻塞数据」相关组件时,则需要根据业务数据量扩大该 size 的大小。

否则,数据会一直在某两个组件之间的缓存队列中存放,当数量达到一定大小时,就会卡住不动。

缓存队列的大小对作业没有影响,查看源码发现,缓存队列由 inputRowSetoutputRowset 组成,底层实现是 ArrayList,初始化创建的时候,默认容量为 10,并不会直接创建设定长度的数组。并且使用 ArrayList 的特性:当要添加的数据量超过数组的容量时候,ArrayList 会动态扩容,size 扩大 1.5 倍。