2017-05-05 56 views
0

私は多くを検索し、ループを実装するためにジョブまたはサブジョブが使用される方法のほとんどがあることに気づいています。ペンタホケトルにどのくらいのループタイプがありますか?

無駄なシステムソースだと思いますか?それは良い方法ですか?

プログラマで 'while'、 'for'、 'foreach'、および特定のイテレータのようなループ文法を書いています。私は仕事を終えるのにpentahoケトルETLツールを使う必要があります。通知ケトルは、スクリプトツールを提供 - javascriptは、開発者は、JavaScriptコードやJavaコードを書くことができます。

ループ機能を実装するために、ジョブまたはサブジョブではなくjavascriptのステップを使用する必要があると思いますか?私はちょうどほとんどの場合にsamllデータストリームを反復する必要があるので、単純にループ関数を実装する別の方法がありますか?

なぜケトルは 'iterator'のようなステップを実装していないのですか?ケトルデベロッパーAPIを使用してイテレーターを実装することは可能ですか?

ありがとうございます。

答えて

0

Pentaho Data Integrationは、ストリームベースのデザインを使用しています。つまり、変換またはジョブを通過する各レコードの処理を定義します。ほとんどの場合、これは変換のすべてのステップが同時に実行されるため、基本for for/whileループを既に高いレベルの並列化のボーナスに置き換えます。

グルーピング、ソート、集計などのレコード全体に影響を与える操作は、単一ステップでサポートされているので、実際にはループを実際に見ることはありません。暗黙的です。

不明な数のフィールドを結合するためのJavascriptのステップでループが必要になることはほとんどありません。デフォルトの手順で他の動的構造を使用するか無効なJSON/XMLを解析することはほとんどありません。

ジョブとサブジョブは、コンポーネントの制御フローと再利用のためのものです。それらを使用して、どの条件でどの順番でどの変換を実行するかを指定できます。 ループに実装することはできますが、代わりにデータをグループ化し、サブジョブや変換にバッチで渡すほうがよい場合がよくあります。

私の経験では、最初のソリューションにループが含まれていても、フローベースのオプションについて十分理解していないことがあります。すべてのケースを分割したフローチャートを描くと、スプーンでどのような変形が起こっているかがわかります。

ループを使用する場所の質問に例を追加すると、ループなしで同じものを実装する方法を示すことができます。

私の答えはthis other questionです。これは、JSONオブジェクトを繰り返し作成するために使用されるJavascriptのステップの例です。 JSのステップ自体は、それを通過する各行に対してすでに実行されているため、ループ構文を記述することなく自分の仕事をしていることに気付くでしょう。

関連する問題