【问题标题】:Fetching Result From Java API from Pentaho Kettle Job从 Pentaho Kettle Job 的 Java API 获取结果
【发布时间】:2018-04-04 16:57:04
【问题描述】:

我在 Pentaho 有一份工作。该作业有许多子作业和许多转换。大多数转换写入表。我想获得一些统计信息,如下所示。

  1. Table1 成品加工(I=0, O=0, R=86400, W=86400, U=0, E=0)
  2. Table2 成品加工(I=0, O=0, R=86400, W=86400, U=0, E=0)
  3. Table3 成品加工(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());

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 非常感谢!但是,我不想回到数据库读取日志。想从 JAVA API 本身获得结果。如果这不可能,我想为每个运行的作业在新的日志文件上打印日志,而不是在控制台上打印。能否请您指导我查看此特定内容的一些示例或文档。
    • 如果你想在文件上写日志,为什么不在命令行级别使用重定向pan.sh > mylog.log?更多选项:help.pentaho.com/Documentation/5.1/0L0/0Y0/0J0/010/010
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多