Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pentaho 输出文件最后一行的值,并指定为变量_Pentaho_Kettle - Fatal编程技术网

Pentaho 输出文件最后一行的值,并指定为变量

Pentaho 输出文件最后一行的值,并指定为变量,pentaho,kettle,Pentaho,Kettle,我有一个ETL pentaho,它提供了以下步骤的excel文件输出 转变1: 表输入已通过创建的ASC获得具有created>DATEVALUE顺序的SQL语句 排序行 Excel输出 现在,如何读取excel输出创建的列值的最后一行并将其存储到文本文件中?所以我可以确保当作业重新运行时,SQL语句的创建日期比文本文件存储的值大 转变1: 表input SQL语句,如created>按created ASC从文本文件顺序获取值 排序行 Excel输出 实现这一点的最简单方法是什么?您可以保存数

我有一个ETL pentaho,它提供了以下步骤的excel文件输出

转变1:

表输入已通过创建的ASC获得具有created>DATEVALUE顺序的SQL语句 排序行 Excel输出 现在,如何读取excel输出创建的列值的最后一行并将其存储到文本文件中?所以我可以确保当作业重新运行时,SQL语句的创建日期比文本文件存储的值大

转变1:

表input SQL语句,如created>按created ASC从文本文件顺序获取值 排序行 Excel输出
实现这一点的最简单方法是什么?

您可以保存数据流的最后一行,该行与写入Excel的最后一行相匹配,使用Group by和文本文件输出的组合,您可以在Excel输出步骤后立即显示:

按步骤分组:在“聚合”选项卡的“类型”列中设置最后一个值。将日期字段作为主题,并为其命名,例如last_date。 文本文件输出步骤:将最后一天写入文件。 然后,转换将从一个步骤开始,该步骤从文件文本文件输入中读取最后的_日期,并将其传递到表输入步骤,在该步骤中,它将用作SQL查询的参数

还可以使用流步骤中的标识最后一行。只需保持Excel输出步骤中的行,标识最后一行,放弃除该行以外的所有行,然后将其写入文本文件。它看起来像这样:


我尝试了第一部分的解决方案,以将最后一行写入文本文件。但是为了让这两个部分都能正常工作还很困难。转换2:文本文件输入-如果我勾选用作参数,表输入SQL语句不会从文本文件中提取值。您可以发布一个示例吗?您需要将数据从文本文件输入步骤插入表输入步骤。这需要在表输入步骤中完成,在该步骤中,您选择文本文件输入作为“从步骤参数插入数据”的值。然后检查脚本中的替换变量?在SQL代码中使用?插入变量的值。要检查哪些输入字段用作表输入的输入,请在步骤上单击鼠标右键,然后选择“显示输入字段”。我将附加一个转换快照。这很有效。但如何将文本文件输入值获取到SQL语句的表输入中呢。举例说明步骤会有所帮助。感谢您必须进行另一个转换,从文本文件输入步骤读取。然后将数据库连接步骤或表输入中的值与参数一起使用。上面有几个问题,以展示这样做的示例。如果你仍然不能得到它,在这里评论或问另一个问题。