我正在尝试通过代码定义Pentaho Kettle(ktr)转换。我想在转换中添加一个文本文件输入步骤:http://wiki.pentaho.com/display/EAI/Text+File+Input。
我不知道该怎么做(注意我想在自定义Java应用程序中实现结果,而不是使用标准的Spoon GUI)。我想我应该使用TextFileInputMeta
类,但是当我尝试定义文件名时,trasformation不再起作用(在Spoon中似乎是空的)。
这是我正在使用的代码。我认为第三行出了点问题:
PluginRegistry registry = PluginRegistry.getInstance();
TextFileInputMeta fileInMeta = new TextFileInputMeta();
fileInMeta.setFileName(new String[] {myFileName});
String fileInPluginId = registry.getPluginId(StepPluginType.class, fileInMeta);
StepMeta fileInStepMeta = new StepMeta(fileInPluginId, myStepName, fileInMeta);
fileInStepMeta.setDraw(true);
fileInStepMeta.setLocation(100, 200);
transAWMMeta.addStep(fileInStepMeta);
答案 0 :(得分:3)
要以编程方式运行转换,您应该执行以下操作:
TransMeta
对象TransMeta
Trans
并运行它
trans.waitUntilFinished()
强制您的线程等待执行完成另外,如果您的情况可以接受,我建议您手动创建转换并从文件中加载转换。这将有助于避免大量的样板代码。在这种情况下运行转换非常容易,请参阅此处的示例:https://github.com/pentaho/pentaho-kettle/blob/master/test/org/pentaho/di/TestUtilities.java#L346