在Kettle / PDI转换中,我需要在表上写入另一个表中的值以及其他静态字符串。
1表输入:读取记录;
2添加常量:添加“status”=“A”; (和别的 …
我的意见是做出最小的改造 Input Table 步骤,因为PDI的哲学是使所有的转变可见。
Input Table
现在,如果您是SQL专家,或者有200行复杂计算的遗留选择,我的答案会有所不同。
在转换中创建另一个步骤将导致单独的线程分配,因为每个步骤都是单独的线程,至于分配至少一个BlockingQueue,因为步骤之间的行通过这些结构分布在存储器中。
使用一个更简单的步骤,即添加常量将导致额外的资源分配。
PDI仍然乐于成为开源的人。
如果你好奇它是如何完成的,这是基础转换步骤实现(很长一段时间) - > https://github.com/pentaho/pentaho-kettle/blob/master/engine/src/main/java/org/pentaho/di/trans/step/BaseStep.java
这是用于在步骤之间分配行的代码示例 - > https://github.com/pentaho/pentaho-kettle/blob/master/core/src/main/java/org/pentaho/di/core/BlockingRowSet.java#L54
当然在sql查询中简单的添加常量PDI将是开销。有很多用例如何使某些操作更快或更少内存消耗,但是关于GUI或其他任何实际PDI着名的功能?