我在Pentaho有工作。该工作有许多子工作和许多转变。大多数转换都写入表。我想获取一些如下的统计信息。


表1完成的处理(I = 0,O = 0,R = 86400,W = 86400,U = 0,E = 0)
表2完成的处理(I = 0,O = 0,R = 86400,W = 86400,U = 0,E = 0)
表3完成的处理(I = 0,O = 0,R = 86400,W = 86400,U = 0,E = 0)


我的代码是:使用此代码,我只是得到上一次转换的结果。例如,如果我运行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());

最佳答案

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

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

在上一个Pentaho Meetup中,我解释了为什么应该在转换级别和作业级别执行此操作(尽管如果知道如何在存储库中导航,则可以自动执行此操作)。您还将拥有一个指向带有JSP的github的指针,您可以在Pentaho BA服务器的WEB_INF中进行复制/粘贴,以便获得与Web服务器完全相同的内容。

请随时询问更多信息或提供反馈。

09-27 01:51