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

时间:2015-04-22 10:24:22

标签: pentaho kettle

我有一个ETL(pentaho),它通过以下步骤提供excel文件输出。

转型1:

  • 表输入(已使用created > DATEVALUE ORDER BY created ASC的SQL语句)
  • 排序行
  • Excel输出

现在我如何读取excel输出(创建列)值的最后一行并存储到文本文件中?所以我可以确保在重新运行作业时,SQL语句created date比文本文件存储值更重。

转型1:

  • 表输入(类似created > (get the value from text file) ORDER BY created ASC的SQL语句)
  • 排序行
  • Excel输出

实现这一目标的最简单方法是什么?

2 个答案:

答案 0 :(得分:1)

您可以使用Group byText file output的组合保存数据流的最后一行,该行匹配到写入Excel的最后一行,您可以在Excel output步骤后立即执行此操作:

  • 分组:Last value标签的Type列中设置Aggregates。将您的日期字段设为Subject,并为其提供一些Name,例如last_date
  • 文本文件输出步骤:last_date写入文件。

然后,您的转换将从一个步骤开始,该步骤从文件(last_date)读取Text file input并将其传递到Table input步骤,在此步骤中将其用作SQL查询的参数

enter image description here

答案 1 :(得分:0)

您还可以使用Identify last row in a stream步骤。只需保持行输出Excel输出步骤,识别最后一行,丢弃除该行之外的所有行,然后将其写入文本文件。它看起来像这样:

enter image description here