2016-12-15 8 views
3

ERPシステムで1日に何百万というレコードをデータベースから取得しようとしていますが、パフォーマンス上の問題に直面しています。コミュニティ?データベースから数百万のレコードを取得し、ERPでERPで処理する際のパフォーマンスの問題esb

muleでレコードを処理する最良の方法は何ですか?だからバッチを使うべきですか、それとも何か別のものがありますか?バッチやその他のソリューションを使用している場合、どのようにパフォーマンスの問題に直面しないように使用することができますか?

+0

リンクがあります。 http://stackoverflow.com/questions/14714032/large-dataset-processing-using-mule-esb-from-database-how-to-update-the-process – Anurag

答えて

0

具体的な状況に関する詳細はありませんので、ここにいくつかの一般的な考え方があります。大規模なデータセットを処理する場合は、フロー設計がうまく機能していることを確認するために、パフォーマンステストを行う必要があります。

明確にするために、私はそのショーのストリーミングのオプションを挙げていますが、パフォーマンスはやや劣りますが、大きなデータセットを処理できるようになります。メモリ内のデータセットを処理でき、高速処理が必要な場合は、ストリーミングをオフにします。

  • DBクエリーを実行していないかどうかテストし、テーブルが適切にインデックスされていることを確認してください。
  • ストリーミングDB接続を使用します。パフォーマンステストのためにチャンクサイズを微調整します。 (Using this with batch scope is a good combo
  • オンプレミスのランタイムを使用する場合は、performance tuningを実行します。
  • 使用バッチスコープ(エンタープライズ版)
0

バッチは、あなたが何をしたいのかのように聞こえます。バッチ・ステップごとに、Muleはバッチ・ジョブ・インスタンスを作成し、各インスタンスには、バッチ・レコードを含む永続キューが含まれます。ただし、フロー変数、フロー構成、メッセージ、処理時間、セッション、および交換パターンを含むMuleEventの完全コピーを作成するので、バッチジョブに入る前に軽いフットプリントを確保してください。いくつかの操作を行うためにフロー変数に数百万のレコードを持つペイロードを設定する必要がある場合は、バッチの実行を開始する前にそれらを削除してください。これらのバッチ・ステップをメモリーにロードして同時に実行するので、必要なメモリー量はバッチ・ジョブ・インスタンス(特にMuleEvent)のバッチ・ステップ数になります。

関連する問題