我正在考虑使用 pentahose 来帮助我转换来自多个来源的不同 xml 文件,以将数据集成到我的系统中。这些 xml 由 java 程序每 10 分钟从 Internet 下载一次。如果我想使用 Kettle 转换数据,是否需要 Pentahose 服务器来运行转换?或者有没有办法将转换导出到 java 类以便我可以使用它们?我会很感激任何类型的方向:)
3 回答
如果你想运行转换,你只需要命令控制台 pan.sh,如果你要运行作业,你需要执行 kitchen.sh 命令。看看 carte.sh 服务器,它是一个独立的网络服务器,允许您将转换和作业远程发送到另一台机器。(内联网、互联网)。
回答您关于 java 代码的其他问题:不,kettle 不会根据您的转换和作业生成 java 代码,只会生成 xml。
你不需要服务器。您可以使用 Kitchen 命令行运行您的 Kettle 作业。您可以轻松地设置一个 cron 作业以按设定的时间间隔执行您的作业。
http://wiki.pentaho.com/display/EAI/Kitchen+User+Documentation
要运行转换和作业,您需要使用 pan 和 kitchen(linux 的 sh 版本和 windows 的 bat)阅读此处http://infocenter.pentaho.com/help/index.jsp?topic=%2Fpdi_user_guide%2Fconcept_cli_scripting.html。如果您想直接从 java 中运行转换/作业,您需要将“lib”和“libswt”(以及某些版本的kettle 的libext)导入您的java 项目并使用kettle 的java API:
KettleEnvironment.init();
JobMeta jobMeta = new JobMeta("job path",null);
jobMeta.setParameterValue("param name",value);
Job job = new Job(null,jobMeta);
job.setLogLevel(LogLevel.BASIC);
job.start();
job.waitUntilFinished();
Result result = job.getResult();
if (!result.getResult()){
//manage the error case
}
这是一个使用java API的例子,kettle是用java制作的,所以它是完全可集成的