ペンタホーズを使用して、複数のソースからのさまざまなxmlファイルを変換し、システムにデータを統合することを考えています。これらのxmlは、Javaプログラムによって10分ごとにインターネットからダウンロードされます。Kettleを使用してデータを変換する場合、変換を実行するためにPentahoseサーバーが必要ですか?または、変換をJavaクラスにエクスポートして、それらを使用できるようにする方法はありますか?どんなオリエンテーションでもよろしくお願いします:)
3 に答える
サーバーは必要ありません。キッチンコマンドラインを使用してケトルジョブを実行できます。設定された間隔でジョブを実行するようにcronジョブを簡単に設定できます。
http://wiki.pentaho.com/display/EAI/Kitchen+User+Documentation
トランスフォーメーションを実行する場合は、コマンドコンソールpan.shのみが必要です。ジョブを実行する場合は、kitchen.shコマンドを実行する必要があります。変換とジョブを別のマシンにリモートで送信できる自己完結型のWebサーバーであるcarte.shサーバーを覗いてみてください。(イントラネット、インターネット)。
Javaコードに関する他の質問への回答:いいえ、ケトルは変換とジョブに基づいてJavaコードを生成せず、xmlのみを生成します。
変換とジョブを実行するには、panとkitchen(Linuxの場合はshバージョン、Windowsの場合はbat)を使用する必要があります。http://infocenter.pentaho.com/help/index.jsp?topic =%2Fpdi_user_guide%2Fconcept_cli_scripting.htmlを参照してください。変換/ジョブをJavaから直接実行する場合は、「lib」と「libswt」(および一部のバージョンのケトルの場合はlibext)をJavaプロジェクトにインポートし、ケトルのjavaAPIを使用する必要があります。
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
}
これはJavaAPIを使用した例であり、ケトルはJavaで作成されているため、完全に統合可能です。