1

私の以前の投稿を参照して、ここにリンクがあります

ソースには 130000 件のレコードがあります。変換を実行しようとすると、16 時間後も実行されていました。

Spoon.bat スクリプト ファイルのメモリ ヒープを増やすと、変換の実行時間を短縮できますか? ( PENTAHO_DI_JAVA_OPTIONS="-Xmx256m -XX:MaxPermSize=256mTOから変更PENTAHO_DI_JAVA_OPTIONS="-Xmx2g -XX:MaxPermSize=256m)。

変換のパフォーマンスを向上させる他の方法は何ですか?

4

2 に答える 2

3

また、変換をスピードアップする必要がありました。これは私の設定PENTAHO_DI_JAVA_OPTIONS="-Xmx2048m" "-XX:MaxPermSize=1024m"です。

最終的な速度は、変換の設計に依存します。一般に:

  • それを実行するマシン/サーバーのHWパラメーター。(私の場合、ラップトップよりも新しいサーバーでジョブを実行すると、約 2 倍高速になります)。実行中に同じマシンで他のプロセスが実行されていますか?
  • 変換は最適化されていますか? JavaScript のステップをよく使用しますか? それらは遅くなります (別のステップに置き換えてみてください)。どのようなストレージを使用していますか? いくつのデータベース結合を使用していますか?
  • 変革のボトルネックを特定しましたか? 変換を実行すると、どのステップが速度を低下させているか (ボトルネック) を確認できStep Metricsます [ のタブを参照しExecution results、 に注目しSpeedInput/outputください]。たとえば、リモート サーバーへのデータベース結合、マージ結合、ソート ステップなどです。このようなステップにさらにインスタンスを設定できます(ステップを右クリック > > 2 以上に設定 > 変換を再実行して違いを確認)。Change number of copies to start..
  • データベース ルックアップにはキャッシュオプションを使用します。
  • 可能であれば、「遅い手順」 (結果を作成するためにすべての行を処理する必要がある手順)を避けます: 行の並べ替え、マージ結合、一意の行、行の非正規化。最初の行がそのようなステップに来ると、最後の行が来るまで常に待機します。次に、ステップはすべての行を処理し、結果を作成して変換を続行します。
  • クラスタリングを使用してみてください。

参考文献:

于 2016-03-02T09:55:17.537 に答える