处理一个 Kettle 步骤的多个输入

Process multiple inputs to a Kettle step

我正在尝试创建一个有两个输入的步骤。它们都应该采用相同的格式。我需要使用这两个输入流进行处理并输出一个流。

下面是我目前在 processRow() 中的代码:

List<StreamInterface> infoStreams = meta.getStepIOMeta().getInfoStreams();

data.oneRowSet = findInputRowSet(infoStreams.get(0).getStepname());
data.twoRowSet = findInputRowSet(infoStreams.get(1).getStepname());

如果它是第一行,所有行都是以下内容:

data.one = getRowFrom(data.oneRowSet);
data.two = getRowFrom(data.twoRowSet);

if (data.one == null && data.two == null) {
      setOutputDone();
      return false;
}

但是在行 data.oneRowSet = findInputRowSet(infoStreams.get(0).getStepname()); 上,我收到以下错误:The source step to read from [null] couldn't be found

您对此的意见将非常有帮助。谢谢。

编辑:我在这里添加了一个示例转换和我的步骤的源代码:https://github.com/adeydas/KettleMultipleStreams/tree/develop

我似乎找到了解决办法。我在这里写了一个小"how-to":http://abhis.ws/display/KKB/Kettle+transformation+step+with+multiple+input+streams and the code is on GitHub: https://github.com/adeydas/KettleMultipleStreams.