过滤行步骤不起作用并初始化两个条件
Filter Rows Step not working and initializing both the conditions
如附图所示。
只有当来自 table 输入的计数值为 <> 0.Else 时,我才需要传递到执行 SQL 步骤,它将移动到虚拟并且不会去执行 process.But 它不工作并且 table 被删除,这实际上是在 SQL 步骤中编写的查询,并且还初始化了虚拟对象。(过滤条件是整数,因此 table 输入计数值)
如果您遇到问题,需要注意一些因素:
PDI中的所有进程都是并行初始化的。因此,如果您在转换中有步骤 (如 Table 输入,table 输出等)。当您执行 ktr 时,所有这些步骤都会一起初始化。
"Execute SQL Script" Pentaho Kettle 中的步骤是自触发的。它在转换的初始化阶段执行。检查此 wiki。
解法:
查看下图:
1.在 SQL 步骤中启用 "Execute for each row":
想法是在ktr的初始化阶段停止查询的执行(执行SQL脚本)。因此,通过勾选 "execute for each row" 选项将确保 SQL 步骤在收到一行后执行,而不是在初始化期间执行。
查看下图:
2。使用"ABORT"步骤(只是一个建议)
使用'dummy step'没有错,但我觉得使用"Abort"步骤,这将确保一旦"filter step" returns中止当前正在执行的转换] 假条件。
3. 如果您不喜欢上述两种解决方案,唯一的其他出路是使用 [ 在作业级别创建解决方案=72=]步。这将解决您的问题。
在here中附上示例代码。
希望对您有所帮助:)
如附图所示。
只有当来自 table 输入的计数值为 <> 0.Else 时,我才需要传递到执行 SQL 步骤,它将移动到虚拟并且不会去执行 process.But 它不工作并且 table 被删除,这实际上是在 SQL 步骤中编写的查询,并且还初始化了虚拟对象。(过滤条件是整数,因此 table 输入计数值)
如果您遇到问题,需要注意一些因素:
PDI中的所有进程都是并行初始化的。因此,如果您在转换中有步骤 (如 Table 输入,table 输出等)。当您执行 ktr 时,所有这些步骤都会一起初始化。
"Execute SQL Script" Pentaho Kettle 中的步骤是自触发的。它在转换的初始化阶段执行。检查此 wiki。
解法:
查看下图:
1.在 SQL 步骤中启用 "Execute for each row":
想法是在ktr的初始化阶段停止查询的执行(执行SQL脚本)。因此,通过勾选 "execute for each row" 选项将确保 SQL 步骤在收到一行后执行,而不是在初始化期间执行。
查看下图:
2。使用"ABORT"步骤(只是一个建议)
使用'dummy step'没有错,但我觉得使用"Abort"步骤,这将确保一旦"filter step" returns中止当前正在执行的转换] 假条件。
3. 如果您不喜欢上述两种解决方案,唯一的其他出路是使用 [ 在作业级别创建解决方案=72=]步。这将解决您的问题。
在here中附上示例代码。
希望对您有所帮助:)