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

最佳答案

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


我们假设进行了一个转换,读取CSV文件以获取SELECT语句的动态部分(例如列),并为其设置变量columns





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





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





我们需要做的最后一件事是依次调用三个转换的工作。




这是一个示例输出:

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

09-30 16:10
查看更多