使用Pentaho Kettle / Spoon / PDI在文本文件中查找单词

时间:2015-05-22 12:46:52

标签: tsql pentaho etl kettle pdi

我正在使用SQL和Spoon PDI创建数据比较/验证脚本。我们在两台服务器之间移动数据,并确保我们获得的所有数据都有SQL查询显示日期,然后是传输的行数。

示例:
Serv1:20150522 | 100个
Serv2:20150522 | 100

然后脚本将尝试联合这些值,如果失败,我们将收到失败的电子邮件。但是,我们希望更改此设置以将结果写入文本文件,并根据该文本文件发送通过或失败的电子邮件。

这背后的想法是我们有多个表格进行比较,因此我们希望将每个比较的所有结果(八个)写入文本文件并基于最终文本文件,发送结果 - 而不是如果多个步骤失败,请向我们的电子邮件收件箱发送垃圾邮件。

我们希望拥有的文本文件的格式是匹配 - >发送电子邮件或不匹配[步骤名称] [日期] - >发送电子邮件。

通常我不会问一个问题,如果我没有先尝试过任何事情,但我已经在谷歌的各个地方进行了搜索,尝试了我目前拥有的知识,没有任何事情按照我希望的方式进行至。我相信这是由于我使用的逻辑。

我不是要求解决这个问题,也不是要求某人为我做这件事。我只是在正确的道路上寻求指导。

1 个答案:

答案 0 :(得分:0)

我会在转换中执行此操作,其中每个联合都有步骤,其中每个步骤的结果是 comparison_name 结果。这将导致最后的数据集看起来像这样:

比较名称|结果

联盟A |真

Union B |假

Union C |真

然后,您可以在另一个步骤中将这些结果输出到文本文件,以便将结果文件发送出去,无论作业是通过还是失败。

最后,您将遍历流中的结果行,如果一切都为真,您可以执行电子邮件步骤以发送"传递"电子邮件,如果一个是假的,发出一个"失败"电子邮件。

编辑:

要获取通过或失败的日期,您可以通过将其添加到查询中来获取每个联合查询结果的日期,如下所示:

SELECT CURRENT_DATE

或者你可以使用勺子中的获取系统信息步骤,它有多种方法将当前日期注入数据流。 (系统日期固定,转换的开始日期范围,今天00:00:00等)