質問
Salesforce新コネクターへの移行にあたり、マージMapperを使用した大量データ処理(数十万件規模)において、検索負荷の増大・WHERE句が長くなりすぎることによるクエリエラー・HULFT Squareサーバーのメモリー不足・全体的な性能劣化が懸念されます。対策はありますか?
回答
「レコード読み取り(子->親)処理」を活用することで事前に取得するデータを1つのオブジェクトに絞ることができ、処理負荷を大幅に軽減できる可能性があります。
ただし、データを取得してマージ処理を行う実装上、Integrateサービスのメモリリソースへの負荷は発生するため、懸念事項が発生する可能性は否定できません。実際の影響度合いはお客様環境での検証が必要です。
メモリ負荷への対策として、以下の方法が考えられます。
1. PSPデータフローや大容量データ処理の有効化
Salesforceコネクターの「レコード挿入/更新処理」はPSPデータフローと大容量データ処理をサポートしているため、有効化することでメモリへの負荷を軽減できる可能性があります。
2. 「レコード読み取り(子->親)処理」で取得するデータ数の削減
取得対象のオブジェクトのレコード数が膨大な場合、「レコード読み取り(子->親)処理」に任意のWHERE句を指定して取得対象データを絞り込むことが考えられます。
3. 「繰り返し(データ件数)処理」フローを利用したデータ分割処理
CSVファイルから読み込んだUpsert用データを繰り返し基準として「繰り返し(データ件数)処理」フローを配置し、データ1件ずつ処理することが可能です。フロー内で検索対象オブジェクトを読み取る際にWHERE句で外部IDを条件指定することで、取得件数を1件ずつとすることができます。フロー内の後続プロセスでマージ処理を行い、Upsert処理を実行します。この方法はメモリ使用量の負荷を大幅に軽減できますが、処理時間が長期化する可能性があります。
いずれの実装案もお客様の要件を満たせるかどうかは、実際に検証していただいた上でご検討ください。
補足
- マージ等のデータ連携用処理で扱えるデータサイズはIntegrateサービスやネットワーク等の稼働環境に依存するため、サポートから明示的な回答を行うことは難しく、お客様環境での実際の検証が必要です。
- 大容量データの対応:https://www.hulft.com/help/ja-jp/HULFTSquare/Content/Data_Integration/Detailed/capacity.htm
- 繰り返し(データ件数)処理:https://www.hulft.com/help/ja-jp/HULFTSquare/Content/Designer/Connector/flow_loop_by_number_of_data.htm
コメント
0件のコメント
記事コメントは受け付けていません。