分散処理用のデータフローの設計
分散処理は、データフローの各パーツを受け取り、それらのパーツの処理を Spectrum™ Technology Platform サーバー群のクラスタに分散させます。例えば、データフローでジオコーディングを実行する場合は、パフォーマンス向上のために、ジオコーディング処理をクラスタ内の複数の Spectrum™ Technology Platform ノード間で分散させることができます。
-
データフローのどのステージを分散させるのかを決定したうえで、分散化するステージを含むサブフローを作成します。
次のステージは、分散処理で使用されるサブフローでは使用しないでください。
- Sorter
- Unique ID Generator
- Record Joiner
- Interflow Match
次のステージは、分散処理用のサブフロー内で一緒に使用する必要があります。
- マッチング ステージ (Intraflow Match、Transactional Match) および統合ステージ (Filter、Best of Breed、Duplicate Synchronization)
- Aggregator および Splitter
サブフロー内には別のサブフロー (ネストされたサブフロー) を含めないでください。
分散処理に使用されるサブフロー内でマッチング操作を実行する場合は、次の点に注意してください。
- ソートは、サブフロー内ではなくジョブ内で行う必要があります。ソートは、ステージ内ではオフにし、ジョブ レベルで配置する必要があります。
- マッチ分析は、分散サブフローではサポートされていません。
- コレクション番号は、マイクロフロー バッチ グループ内で再利用されます。
サブフローで Write Exception ステージを使用すると、予期せぬ結果が生じることがあります。代わりに、ジョブ レベルでこのステージをデータフローに追加してください。
- 分散化するデータフローの一部としてサブフローを作成した後は、そのサブフローを親データフローに追加し、上流および下流ステージに接続します。分散処理で使用されるサブフローは、入力ポートを 1 つだけ持つことができます。
- サブフローを右クリックして、[オプション] を選択します。
- [分散] を選択します。
- 各サーバーに送信するマイクロフローの数を入力します。
- 各マイクロフロー バッチに含めるレコードの数を入力します。
- オプション:
(オプション) [グループ フィールド名] にチェックを入れ、マイクロフロー バッチをグループ化するフィールドの名前を選択します。
グループ フィールドを指定した場合は、グループが複数のバッチに分割されないので、バッチ サイズが [マイクロ フロー バッチ サイズ] フィールドで指定した値より大きくなる可能性があります。例えば、バッチ サイズとして 100 を指定したのに同じグループ内に 108 のレコードがある場合、バッチには 108 レコードが含まれます。同様に、バッチ サイズとして 100 を指定し、同じ ID を持つ 28 レコードの新しいグループがレコード 80 から始まる場合、そのバッチには 108 レコードが含まれます。
以下に、My Distributed Subflow という名前のサブフローが分散モードで実行されるように設定されたデータフローの例を示します。