トランスフォーメーション > トランスフォーメーション > トランスフォーメーションキャッシュ
  

トランスフォーメーションキャッシュ

データ統合では、マッピング時にアグリゲータ、ジョイナ、ルックアップ、ランク、およびソーターの各トランスフォーメーションに対して、キャッシュメモリが割り当てられます。
これらのトランスフォーメーションに対してキャッシュサイズを設定できます。キャッシュサイズによって、データ統合がマッピングの実行開始時に各トランスフォーメーションキャッシュに割り当てるメモリ量が決まります。
キャッシュサイズがマシン上で使用可能なメモリよりも大きい場合、データ統合は十分なメモリを割り当てることができず、タスクは失敗します。
キャッシュサイズがトランスフォーメーションの実行に必要なメモリ量よりも小さい場合、データ統合はトランスフォーメーションの一部をメモリで処理して、オーバーフローしたデータをキャッシュファイルに格納します。データ統合がキャッシュファイルをディスクにページングすると、処理時間が長くなります。最適なパフォーマンスを得るには、データ統合がキャッシュメモリ内でトランスフォーメーションデータを処理できるようにキャッシュサイズを設定します。
デフォルトでは、データ統合は、割り当て可能なメモリの最大量に基づいて実行時に必要なメモリを自動的に計算します。自動キャッシュモードでマッピングを実行した後に、各トランスフォーメーションのキャッシュサイズを調整できます。

キャッシュタイプ

アグリゲータ、ジョイナ、ルックアップ、ランクの各トランスフォーメーションでは、インデックスキャッシュとデータキャッシュが必要です。ソータートランスフォーメーションには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トランスフォーメーションプロパティの[詳細]タブで、セッションログで推奨されたキャッシュサイズの値をバイト単位で入力します。