1

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

示例:
Serv1:20150522 | 100
伺服器2:20150522 | 100

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

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

我们希望拥有的文本文件的格式是 match -> send email 或 mismatch [step-name] [date] -> send email。

通常,如果我没有先尝试过任何事情,我不会问任何问题,但我在 Google 上到处搜索,尝试了我目前拥有的知识,但没有任何事情能如我所愿。我相信这是由于我使用的逻辑。

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

4

1 回答 1

0

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

比较名称 | 结果


联盟A | 真的

联合 B | 错误的

联合 C | 真的


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

最后,您将遍历流中的结果行,如果全部为真,您可以执行电子邮件步骤以发送“通过”电子邮件,如果为假,则发送“失败”电子邮件。

编辑:

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

SELECT CURRENT_DATE

或者您可以使用 Spoon 中的Get System Info步骤,它有多种将当前日期注入数据流的方法。(系统日期固定,转换的开始日期范围,今天 00:00:00 等)

于 2015-05-27T21:13:23.107 回答