PDI Kettle 中结果行的范围是什么?

What is the scope of result rows in PDI Kettle?

在 kettle 中处理结果行是在程序内部传递列表的唯一方法。但这究竟是如何工作的呢?这个话题没有很好的记录,有很多问题。

例如,包含 2 个转换的作业可以将结果行从第一个发送到第二个。但是如果有第三个转换获取结果行呢?范围是什么?您也可以将结果行传递给子作业吗?你能根据转换中的逻辑清除结果行吗?

使用列表和数组在编程中是有用且必要的,但在 PDI Kettle 中却令人困惑。

我同意使用结果行可能会令人困惑,但您可以放心:它有效。

是的,您可以将它传递给一个子作业,并在一系列子作业中传递(第一次测试时将范围定义为 "valid in the java machine")。

不,没有办法清除转换中的结果(当然不是基于公式)。那将意味着维护中的可怕过载。

Kettle 不是一种命令式语言,它更像是一种数据流家族。这意味着它更接近您在开发 ETL 时的想法,而且性能更高。缺点是list和array没有意义。只有数据流。

这就是结果集:数据流,就像 sql 查询的结果集。下一个作业必须打开它,将每一行传递给转换,并在最后一行之后关闭它。