从Pentaho Kettle Job从Java API获取结果

时间:2018-04-04 16:57:05

标签: java pentaho kettle pentaho-data-integration pentaho-cde

我在Pentaho有一份工作。这项工作有许多子工作和许多转型。大多数转换都写入表。我想获得如下的一些统计信息。

  1. 表1完成处理(I = 0,O = 0,R = 86400,W = 86400,U = 0,E = 0)
  2. 表2完成处理(I = 0,O = 0,R = 86400,W = 86400,U = 0,E = 0)
  3. 表3完成处理(I = 0,O = 0,R = 86400,W = 86400,U = 0,E = 0)
  4. 我的代码是:使用这段代码,我只是得到了最后一次转换的结果。例如,如果我运行40变换,我的结果只是第40个变换结果。但我希望看到所有40个转换结果。

    KettleEnvironment.init();
    JobMeta jobMeta = new JobMeta("Job.kjb", null);
    Job job = new Job(null, jobMeta);          
    job.start();
    job.waitUntilFinished() 
    Result result = job.getResult();   
    System.out.println("dfffdgfdg: "+result.getLogText());
    

1 个答案:

答案 0 :(得分:0)

使用logging system。在每次感兴趣的转换时,右键单击任意位置,选择设置,然后记录并设置要收集统计数据的数据(例如,在“输出”按钮前面选择在要监视的表上写入数据的步骤) 。我建议你使用默认值来开始。

之后,按下SQL按钮,Pentaho Data Integrator将在数据库中创建一个包含相关列的表。每次运行转换(或任何使用相同存储库的人)都会在表中放置一行。之后,只需SELECT * FROM TRANSFORMATION_LOG。

在上一篇Pentaho Meetup中,我解释了为什么要在转换级别和工作级别执行此操作(尽管如果您知道如何在存储库中导航,则可以自动执行此操作)。你还有一个指向带有JSP的github的指针,你可以在你的Pentaho BA服务器的WEB_INF中复制/粘贴它,这样你就可以得到你在web服务器中的完全信息。

不要犹豫,要求提供更多信息或提供反馈。