【问题标题】:Pentaho - Execute a Kettle Transformation remotely using JavaPentaho - 使用 Java 远程执行 Kettle 转换
【发布时间】:2014-07-29 21:40:54
【问题描述】:

我正在使用 Java API 执行我的作业/转换,并且能够在我的主机中正确执行。

现在我正在寻找一种在远程主机中执行转换的方法(carte 正在运行)。请帮助我或将我重定向到正确的文档,在那里我可以找到用于完成此任务的类。

PDI 版本 - 5.0.1

目前我正在执行我的工作如下

  try {
        if(jobDetails.getGraphlocation()!=null)
        {
            KettleEnvironment.init();
            JobMeta jobMeta = new JobMeta(jobDetails.getGraphlocation(), null);

            for( String s : jobDetails.getArguments() )
            {
                String[] splitString = s.split("\\=");
                if(splitString.length==2)
                {
                    jobMeta.setParameterValue(splitString[0], splitString[1]);

                }
                else
                    System.err.println("Parameter should be of the form - name=value");
            }

            Job job = new Job(null, jobMeta);
            job.setLogLevel(LogLevel.valueOf(jobDetails.getLoglevel().toString()));

            job.start();
            job.waitUntilFinished();
            if (job.getErrors()!=0) {
                System.out.println("Error encountered!");
            }   
        }

上面的代码能够在我运行它的任何地方执行作业。但我想通过只传递carte用户名、密码和服务器IP地址在从服务器中执行它。

【问题讨论】:

    标签: java pentaho kettle


    【解决方案1】:

    您可以通过spoon 通过注册carte 服务器来完成,或者您可以通过在实际作业/转换步骤中指定carte 服务器的名称和端口来在job 中完成。即您可以创建一个启动器,它只有启动、作业(指向 carte 服务器)、成功步骤。

    【讨论】:

    • 感谢您的回复。我想使用 Java API(通过创建我自己的 jar)执行现有的转换/作业,因为我无法访问勺子。请查看我的编辑。
    • 嗯,好的。 Carte 只是一个 web 服务,所以你可以直接调用它,告诉它要运行哪个转换。或者您执行现有转换,在远程服务器上启动您的作业。
    • so you could just call that direct telling it which transformation to run 是否有任何文档,或者您能告诉我在哪里可以找到用于实现它的合适类吗?我已经在 Pentaho 论坛中解决了所有与此相关的问题,但发现自己无能为力:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多