记录集合里面的记录数

该数量是指组件与组件之间通信的缓存队列的 size 大小,Kettle 内部用 List 实现该缓存队列,每一条语句都会被封装成一个 RowSet 对象,每个组件之间都会有个 List<RowSet> 队列,源 step 每次会往该队列写一条数据,目标 step 每次会从队列读取一条数据。
Kettle 里面转换是并行的,数据是一条一条流经每个组件,队列大小采用默认的 10000 条即可。
但是当使用到「阻塞数据直至步骤完成」、「阻塞数据」相关组件时,则需要根据业务数据量扩大该 size 的大小。
否则,数据会一直在某两个组件之间的缓存队列中存放,当数量达到一定大小时,就会卡住不动。
缓存队列的大小对作业没有影响,查看源码发现,缓存队列由 inputRowSet 和 outputRowset 组成,底层实现是 ArrayList,初始化创建的时候,默认容量为 10,并不会直接创建设定长度的数组。并且使用 ArrayList 的特性:当要添加的数据量超过数组的容量时候,ArrayList 会动态扩容,size 扩大 1.5 倍。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小五的个人杂货铺!