トランスフォーメーションキャッシュ データ統合 では、マッピング時にアグリゲータ、ジョイナ、ルックアップ、ランク、およびソーターの各トランスフォーメーションに対して、キャッシュメモリが割り当てられます。
これらのトランスフォーメーションに対してキャッシュサイズを設定できます。キャッシュサイズによって、データ統合 がマッピングの実行開始時に各トランスフォーメーションキャッシュに割り当てるメモリ量が決まります。
キャッシュサイズがマシン上で使用可能なメモリよりも大きい場合、データ統合 は十分なメモリを割り当てることができず、タスクは失敗します。
キャッシュサイズがトランスフォーメーションの実行に必要なメモリ量よりも小さい場合、データ統合 はトランスフォーメーションの一部をメモリで処理して、オーバーフローしたデータをキャッシュファイルに格納します。データ統合 がキャッシュファイルをディスクにページングすると、処理時間が長くなります。最適なパフォーマンスを得るには、データ統合 がキャッシュメモリ内でトランスフォーメーションデータを処理できるようにキャッシュサイズを設定します。
デフォルトでは、データ統合 は、割り当て可能なメモリの最大量に基づいて実行時に必要なメモリを自動的に計算します。自動キャッシュモードでマッピングを実行した後に、各トランスフォーメーションのキャッシュサイズを調整できます。
キャッシュタイプ アグリゲータ、ジョイナ、ルックアップ、ランクの各トランスフォーメーションでは、インデックスキャッシュとデータキャッシュが必要です。ソータートランスフォーメーションには1つのキャッシュが必要です。
以下の表に、データ統合 で各キャッシュに保存される情報のタイプを示します。
トランスフォーメーション
キャッシュタイプ
アグリゲータ
インデックス。グループ化フィールドの設定に従ってグループ値を格納します。
データ。グループ化フィールドに基づいて計算結果を格納します。
ジョイナ
インデックス。結合条件に、一意キーを持つすべてのマスター行を格納します。
データ。マスターソースの行を格納します。
ルックアップ
インデックス。ルックアップ条件の情報を格納します。
データ。インデックスキャッシュに格納されないルックアップデータを格納します。
ランク
インデックス。グループ化フィールドの設定に従ってグループ値を格納します。
データ。グループ化フィールドに基づいて行データを格納します。
ソータ
ソータ。ソートキーおよびデータを格納します。
キャッシュファイル マッピングを実行すると、データ統合 で、アグリゲータ、ジョイナ、ルックアップ、ランク、およびソーターの各トランスフォーメーションに対して、少なくとも1つのキャッシュファイルが作成されます。データ統合 がメモリでトランスフォーメーションを実行できない場合、オーバーフローしたデータがキャッシュファイルに書き込まれます。
アグリゲータ、ジョイナ、ルックアップ、およびランクトランスフォーメーションの場合、データ統合 では、トランスフォーメーションを実行するためのインデックスファイルとデータキャッシュファイルが作成されます。ソータートランスフォーメーションの場合、データ統合 では、1つのソーターキャッシュファイルが作成されます。デフォルトでは、データ統合 は、データ統合サーバーでSecure Agent $PMCacheDirプロパティに入力されたディレクトリにキャッシュファイルを格納します。キャッシュディレクトリは、トランスフォーメーションプロパティの[詳細] タブで変更できます。キャッシュディレクトリを変更する場合は、指定するディレクトリが存在し、キャッシュファイルのための十分なディスクスペースがあることを確認してください。
キャッシュサイズ キャッシュサイズによって、データ統合 がマッピングの実行開始時に各トランスフォーメーションキャッシュに割り当てるメモリ量が決まります。自動キャッシュモードを使用するか、固有の値を使用するようにトランスフォーメーションを設定できます。
自動キャッシュ デフォルトでは、トランスフォーメーションキャッシュサイズは[自動]に設定されています。データ統合 は、実行時にキャッシュメモリ要件を自動的に計算します。タスクの設定時に、データ統合 が詳細セッションプロパティで割り当てることができるメモリの最大量を定義することもできます。
データ統合 は、処理時間が長いトランスフォーメーションにより多くのメモリを割り当てます。例えば、データ統合ではソータートランスフォーメーションにより多くのメモリが割り当てられますが、これは、ソータートランスフォーメーションの実行により長い時間がかかるためです。
データキャッシュとインデックスキャッシュを使用するトランスフォーメーションでは、データ統合 は、インデックスキャッシュよりもデータキャッシュに多くのメモリを割り当てます。また、ソータートランスフォーメーションのすべてのメモリをソーターキャッシュに割り当てます。
固有のキャッシュサイズ トランスフォーメーションに固有のキャッシュサイズを設定できます。データ統合 は、マッピングの実行開始時に、指定されたメモリ量をトランスフォーメーションキャッシュに割り当てます。キャッシュサイズを調整する場合は、固有の値をバイト単位で設定します。
セッションログを使用して、最適なキャッシュサイズを指定できます。セッションログに指定された値を使用するようにキャッシュサイズを設定することで、割り当てたメモリを無駄にしないようにすることができます。ただし、最適なキャッシュサイズはソースデータのサイズによって異なります。その後もマッピングの実行後にマッピングログを確認して、キャッシュサイズの変化を監視します。
特定のキャッシュサイズを定義するには、トランスフォーメーションプロパティの[詳細] タブでキャッシュサイズの値を入力します。
キャッシュサイズの最適化 最適なマッピングパフォーマンスを得るには、データ統合 がキャッシュメモリ内で完全なトランスフォーメーションを実行できるようにキャッシュサイズを設定します。
1 トランスフォーメーションプロパティの [詳細] タブで、[トレースレベル]を[詳細 - 初期化]に設定します。
2 自動キャッシュモードでタスクを実行します。
3 セッションログのトランスフォーメーション統計を分析して、最適なパフォーマンスに必要なキャッシュサイズを決定します。
例えば、「Joiner」というジョイナトランスフォーメーションがあるとします。セッションログには、以下のテキストが含まれます。
CMN_1795 [2023-01-06 16:16:59.026] The index cache size that would hold [10005] input rows from the master for [Joiner], in memory, is [8437760] bytes CMN_1794 [2023-01-06 16:16:59.026] The data cache size that would hold [10005] input rows from the master for [Joiner], in memory, is [103891920] bytes
ログは、インデックスキャッシュサイズとして8,437,760バイトが必要であり、データキャッシュとして103,891,920バイトが必要であることを示しています。
4 トランスフォーメーションプロパティの [詳細] タブで、セッションログで推奨されたキャッシュサイズの値をバイト単位で入力します。