質問
CSVファイルを読み込んだ後、Mappingで条件に応じた抽出を行う場合、処理はどのような流れになりますか?(1行ずつ処理されるのか、まとめて処理されるのか)
回答
CSVファイル読み取り後のMapping処理の動作は、スクリプトの構成や処理設定によって異なります。
**PSPが適用される場合**
シンプルな「CSVファイル読み取り → Mapping → 書き込み」という構成で、各コンポーネントがPSP(パラレルストリーミング処理)に対応している場合、スマートコンパイラによってPSPが自動的に適用されます。
この場合、CSVファイル全体を一度メモリ上に読み込むのではなく、原則として1,000件単位のブロックに分けて、以下の処理を並行して実行します。
- CSV読み取り
- Mappingによる条件判定・抽出
- 後続コンポーネントへの書き込み
CSVデータが100件の場合は、100件が一つのブロックとして処理されます。
**PSPが適用されない場合**
- 通常処理:CSV読み取り結果をすべてメモリ上に保持した後、後続のMapping処理へ渡します。
- 大容量データ処理を有効にした場合:処理に必要な最低限のデータのみをメモリに保持し、それ以外のデータは一時ファイルへ保存します。テーブルモデル型のデータは1行分ずつメモリに読み込まれますが、CSV読み取りからMappingへ直接1行ずつ受け渡すストリーミング処理とは異なり、途中結果が一時ファイルに保存されます。
**PSP適用有無の確認方法**
HULFT Square デザイナーの [表示] - [PSPデータフローの表示] から確認できます。PSPが適用されているデータフローは黄色の太線で表示されます。また、実行ログに「PSP処理を開始しました」「PSP処理を終了しました」と出力されているかどうかでも確認できます。
補足
コメント
0件のコメント
記事コメントは受け付けていません。