Kettle的转换和作业可以在垂直和水平方面进行扩展。
垂直扩展是尽可能利用单台服务器上的多CPU核数。水平扩展是使用多台机器资源,使他们并行计算。
下面先谈谈转换内部的并行机制。
一.多线程
默认情况下转换中的每一个步骤都事在单一隔离的线程里面并行执行,但可以为任何单一步骤增加线程数目,这叫做复制。这可以提高CPU时间消耗量大的转换步骤的性能。
image.png
*4代表了4个复制将在运行时被启动。
Step:描述需要做的某项工作的定义或元数据。
Step copy:在步骤里定义的执行某项工作的一个并行工作线程
step仅仅是任务的定义,而一个step copy则表示一个实际执行的任务。
记录行分发
记录怎样分发给目标步骤复制?默认下,分发以循环方式执行。比如有N份复制,第一份复制获取第一条,第二份复制获取第二条,以此类推。
记录行合并
记录合并发生在几个步骤或步骤复制发送多条记录给单个步骤复制时。
image.png
记录行再分发
在记录行再分发里,有X个步骤复制发送记录集给Y个目标步骤复制。
image.png
其等同于下图:
image.png
数据流水线
数据流水线是再分发的