埋め込まれたデータフローで繰り返しを使用
繰り返し設定を使って、埋め込まれたデータフローが入力レコードを処理する方法を指定できます。デフォルトで、埋め込まれたデータフローは、データフローで他のステージがそうするように各レコードを個別に処理します。しかし、繰り返しを使うと、複数のレコードを一括して処理できます。この機能は、入力データ全体ではなくレコードのグループに基づいて比較や演算を実行する場合などに便利です。また、繰り返しを使って、各レコードのデータに基づくステージ オプションを設定できます。
繰り返しには、レコード単位の繰り返しとグループ単位の繰り返しの 2 つがあります。レコード単位の繰り返しでは、埋め込まれたデータフローで一度に 1 つのレコードが処理され、その結果が、埋め込まれたデータフローの次にあるステージに送られます。レコード単位の繰り返しが便利なのは、レコードごとにフィールド値を使ってステージ オプションを設定したい場合です。
グループ単位の繰り返しでは、レコードがキー フィールドでグループ化され、埋め込まれたデータフローが各グループを処理します。グループ内のすべてのレコードが 1 回の繰り返しで処理され、埋め込まれたサブフローの次にあるステージにグループが書き込まれます。グループ単位の繰り返しを使って、関連性があるレコードのグループに処理を実行できるほか、レコードのグループの処理中にステージ オプションも設定できます。例えば、顧客 ID でレコードをグループ化すれば、顧客別にレコードを分析できます。特定の顧客が最もひいきにする店舗などがわかるでしょう。
繰り返しを使う際は、パフォーマンスへの影響を考慮してください。繰り返しが新たに開始されるたびに、埋め込まれたデータフローを初期化する処理によってオーバーヘッドが生じます。埋め込まれたデータフローが、他の埋め込まれたデータフローに含まれている場合には、このオーバーヘッドが特に大きくなります。例えば、埋め込まれたデータフローが 1,000 回繰り返され、そこに含まれる埋め込まれたデータフローが 1,000 回繰り返されるとしたら、繰り返しの回数は合計で 100 万回に達します。レコード単位の繰り返しではレコードごとに新しい繰り返しが発生するので、パフォーマンスへの影響はさらに大きくなります。