Pentaho SDK,如何定义文本文件输入
Pentaho SDK, how to define a text file input
我正在尝试通过代码定义 Pentaho Kettle (ktr) 转换。我想在转换中添加文本文件输入步骤:http://wiki.pentaho.com/display/EAI/Text+File+Input.
我不知道该怎么做(请注意,我想在自定义 Java 应用程序中实现结果,而不是使用标准的 Spoon GUI)。我想我应该使用 TextFileInputMeta
class,但是当我尝试定义文件名时,转换不再起作用(在 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);
要以编程方式进行 运行 转换,您应该执行以下操作:
- 初始化 Kettle
- 准备一个
TransMeta
对象
- 准备你的步骤
- 不要忘记元数据对象!
- 将它们添加到
TransMeta
- 创建
Trans
并 运行 它
- 默认情况下,每个转换每一步都会产生一个线程,因此使用
trans.waitUntilFinished()
强制您的线程等待直到执行完成
- 必要时选择执行结果
此外,如果您的情况可以接受,我建议您手动创建转换并从文件加载它。这将有助于避免大量样板代码。在这种情况下 运行 转换非常容易,请参见此处的示例:https://github.com/pentaho/pentaho-kettle/blob/master/test/org/pentaho/di/TestUtilities.java#L346
我正在尝试通过代码定义 Pentaho Kettle (ktr) 转换。我想在转换中添加文本文件输入步骤:http://wiki.pentaho.com/display/EAI/Text+File+Input.
我不知道该怎么做(请注意,我想在自定义 Java 应用程序中实现结果,而不是使用标准的 Spoon GUI)。我想我应该使用 TextFileInputMeta
class,但是当我尝试定义文件名时,转换不再起作用(在 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);
要以编程方式进行 运行 转换,您应该执行以下操作:
- 初始化 Kettle
- 准备一个
TransMeta
对象 - 准备你的步骤
- 不要忘记元数据对象!
- 将它们添加到
TransMeta
- 创建
Trans
并 运行 它- 默认情况下,每个转换每一步都会产生一个线程,因此使用
trans.waitUntilFinished()
强制您的线程等待直到执行完成
- 默认情况下,每个转换每一步都会产生一个线程,因此使用
- 必要时选择执行结果
此外,如果您的情况可以接受,我建议您手动创建转换并从文件加载它。这将有助于避免大量样板代码。在这种情况下 运行 转换非常容易,请参见此处的示例:https://github.com/pentaho/pentaho-kettle/blob/master/test/org/pentaho/di/TestUtilities.java#L346