从pentaho pdi中的输入表捕获执行的sql

时间:2014-05-07 14:41:35

标签: testing pentaho

我正在使用pentaho进行数据迁移测试。我设置了一个“表输入”步骤,其中“表输入”内的查询的许多部分是变量。我一直在寻找一种在运行时执行后捕获该查询的方法。 我想知道sql是否有任何特定的系统日志变量,或者它是否与元数据有关。需要帮忙!感谢

2 个答案:

答案 0 :(得分:1)

也许以下方法会有所帮助:

  • 我们假设转换读取CSV文件以获取SELECT语句的动态部分(例如列)并使用它设置变量columns

enter image description here

  • 第二个转换使用此变量生成SELECT语句并将其存储到变量sql_statement中。

enter image description here

  • 在主转换中,我们使用${sql_statement}作为表输入的SELECT语句,并将数据写入输出文件(这就是业务流程)。从相同的输入,我们输出复制到另一个路径。我们将当前时间添加为字段(使用元素"获取系统数据")并添加生成的SQL语句,将它们作为笛卡尔积加入,并将结果分组为sql_statement。这样我们就可以计算第一次和最后一次使用该语句。这些结果将写入文本文件。

enter image description here

  • 我们需要的最后一件事就是按顺序调用三个转换。

enter image description here

这是一个示例输出:

sql_statement;min_time;max_time
SELECT my_column FROM test_table;2014/05/08 00:41:21.143;2014/05/08 00:41:21.144

答案 1 :(得分:0)

谢谢你马库斯!我做了一些类似的事情。 有用。真棒。 我从表格字段中收集了部分查询,并在javascript中形成了一个完整的查询。之后,完整查询将作为参数发送到将运行并记录查询的转换。