从Java API获取Pentaho Kettle作业的结果

m4pnthwp  于 2023-01-24  发布在  Java
关注(0)|答案(1)|浏览(156)

我有一个在Pentaho的工作。该工作有许多子工作和许多转换。大部分的转换写入一个表。我想得到一些如下统计信息。
1.表1完成处理(I=0,O=0,R=86400,W=86400,U=0,E=0)
1.表2完成处理(I=0,O=0,R=86400,W=86400,U=0,E=0)
1.表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());
ifmq2ha2

ifmq2ha21#

使用logging system。在每个感兴趣的转换上,右键单击任意位置,选择setting,然后选择logging,并设置要收集统计信息的数据(例如,在Output按钮前面选择将数据写入要监视的表的步骤)。我建议您使用默认值开始。
之后,按下SQL按钮,Pentaho Data Integrator将在数据库中创建一个表,其中包含相关列。每次运行转换(或使用相同存储库的任何人)时,都会在表中放置一行。之后,只需SELECT * FROM TRANSFORMATION_LOG。
在最后一次Pentaho Meetup中,我解释了为什么你应该在转换级别和作业级别上这样做(尽管如果你知道如何在存储库中导航,你可以自动化这一点).你也会有一个指向github的指针,你可以在Pentaho BA服务器的WEB_INF中复制/粘贴一个JSP,这样你就可以在web服务器中得到你想要的东西.
请不要犹豫,询问更多信息或提供反馈。

相关问题