过滤行步骤不起作用并初始化两个条件

时间:2015-01-17 16:53:47

标签: kettle pdi

如附图所示。 只有当表输入的计数值为<>时才需要传递给执行SQL步骤0.Else它将移动到dummy并且不会去执行process.But它不工作并且表被删除,这实际上是用SQL步骤编写的查询并且也初始化虚拟。(过滤条件是整数,所以表输入计数值)Image

1 个答案:

答案 0 :(得分:1)

如果您遇到问题,有一些因素需要注意:

  1. PDI中的所有进程都是并行初始化的。因此,如果您在转换中有步骤(如表输入,表格输出等)。执行ktr时,所有这些步骤都会一起初始化。

  2. Pentaho Kettle中的“执行SQL脚本”步骤是自触发的。它在转换的初始化阶段执行。检查此wiki

  3. <强>解决方案:

    检查下图:

    enter image description here

    <强> 1。在SQL步骤中启用“每行执行”:

    想法是在ktr(执行SQL脚本)的初始化阶段停止执行查询。因此,通过勾选“每行执行”选项将确保在接收到行时执行SQL步骤,而不是在初始化期间执行。

    检查下图:

    enter image description here

    <强> 2。使用“ABORT”步骤 (仅作为建议)

    使用'虚拟步骤'没有错,但我觉得使用“中止”步骤,这将确保一旦“过滤步骤”返回错误条件,中止执行中的当前转换。

    3。如果您不喜欢上述两种解决方案,唯一的出路就是使用“简单评估”在作业级别创建解决方案步。这将解决您的问题。

    附上here中的示例代码。

    希望有所帮助:)