在Spoon中能否并行传递字段值至两个子转换执行器?执行顺序如何?
Spoon(Kettle)子转换并行执行问题解答
一、默认执行顺序说明
在主转换中直接将两个Transformation Executor步骤连接到Select field步骤后,默认是串行执行——Kettle会先完成第一个子转换执行器的所有任务,再启动第二个,不会并行处理。
二、实现并行执行的方法
要让两个子转换并行执行,可通过以下两种方式配置:
方法1:使用「并行执行」步骤分组
- 在主转换中添加**「并行执行」(Parallel Execution)**步骤
- 将
Select field步骤的输出连接到「并行执行」步骤 - 打开「并行执行」的配置界面,点击「添加」按钮,分别创建两个子任务:
- 每个任务对应一个目标子转换,配置好子转换路径、字段参数映射等信息
- 确保两个任务被设置为独立的并行分支
- 保存并运行主转换,此时两个子转换会同时启动,并行处理来自
Select field的字段数据
方法2:利用Carte服务器分布式执行
如果子转换运算量较大,可通过Carte服务器实现分布式并行:
- 启动至少两个Carte节点(可在同一机器或不同机器部署)
- 在主转换的两个
Transformation Executor步骤中,分别指定不同的Carte服务器地址 - 运行主转换时,两个子转换会被分发到不同的Carte节点同时执行,实现并行
注意事项
- 并行执行前需确认两个子转换之间无数据依赖关系,避免出现数据冲突或执行错误
- 若需传递相同字段数据到两个子转换,要在各自的分支中单独配置参数映射,确保数据正确传递
内容的提问来源于stack exchange,提问作者Perumalsamy Velu
相关产品推荐
相关产品推荐

