パフォーマンス最適化のための設計ガイドライン

パフォーマンスが最適化されるようデータフローを慎重に設計することは、Spectrum™ Technology Platform のパフォーマンス向上のために実行できる最も重要な作業です。これらのガイドラインでは、データフローのパフォーマンス最適化に使用できる手法について説明します。

ステージ数の最小化

Spectrum™ Technology Platform は、並列処理によって高パフォーマンスを実現します。1 つのフロー内の各ステージは、それぞれのスレッドで非同期に実行します。ただし、ある種のデータフローを実行するときプロセッサがオーバースレッドになる可能性があります。これは、"実際の仕事" を行う以上の時間がスレッドの管理に費やされることを意味します。130 の個別ステージを持つデータフローの場合、1 つまたは 2 つのプロセッサを搭載した小規模なサーバーでのパフォーマンスが非常に悪いことが確認されています。

したがって、パフォーマンスに優れたデータフローを設計するためにまず検討すべきは、必要なだけのステージを使用し、それ以上は使用しないということです。必要以上のステージを使用した例としては、次のものがあります。

  • 1 つで十分にもかかわらず複数のconditional routerを使用する
  • 複数のトランスフォームを 1 つのステージに結合する代わりに複数の Transformer ステージを定義する

幸いなことに、通常はこのようなデータフローを設計し直して、冗長または不要なステージを削除し、パフォーマンスを向上させることができます。

フローが複雑な場合は、埋め込みタイプのフローまたはサブフローを使用してキャンバス上が乱雑にならないように整理することを検討してください。それによって、フローが見やすくなり、操作しやすくなります。埋め込みタイプのフローを使用しても実行時のパフォーマンス上のメリットはありませんが、Enterprise Designer でのフローの操作が容易になります。サブフローを使用して複雑なフローを簡素化すれば、フロー編集時の Enterprise Designer のパフォーマンスが向上します。

レコード長の短縮

同時並行で実行されるステージ間でデータが渡されるため、入力レコードの長さについても検討する必要があります。一般的に、長いレコードの入力では、短いレコードの入力に比べ、処理に時間がかかります。これは、読み込み、書き出し、ソートするデータが多いためです。複数のソート操作を行うデータフローは、レコード長を短くすることで特に恩恵を受けます。非常に長いレコードを処理する場合は、Spectrum™ Technology Platform ジョブを実行する前に入力から不要なフィールドを削除し、その後、生成された出力ファイルにフィールドを戻すことで、処理速度を向上させることができます。

ソートの適切な使用

ソート操作の最小化についても検討する必要があります。ソートは他の操作よりも時間がかかることが多いため、入力レコードの数およびサイズが増加すると問題となる場合があります。しかし、多くの Spectrum™ Technology Platform ステージが、ソートされた入力データを必要としたり、優先したりします。例えば、Universal Addressing モジュールと Enterprise Geocoding モジュールは、入力が国および郵便番号によってソートされている場合にパフォーマンスが最適化されます。Intraflow Match や Interflow Match などのステージでは、入力が [グループ化方法] フィールドによってソートされている必要があります。外部ソート アプリケーションを使用して、入力データを事前にソートできる場合もあります。この場合、Spectrum™ Technology Platform データフロー内でのソートより速く処理できます。